【问题标题】:Close mysqli connection in another file [duplicate]在另一个文件中关闭mysqli连接[重复]
【发布时间】:2017-02-17 14:34:29
【问题描述】:

假设我有 2 个 php 文件
在第一个中,我连接到数据库。由于我在另一个 php 文件中需要它,所以我将它分配给这样的全局变量。

setconnection.php

<?php
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'database';

// Create connection
$GLOBALS['connect'] = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($GLOBALS['connect']->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$db_selected=mysqli_select_db($GLOBALS['connect'],'database');
mysqli_set_charset($GLOBALS['connect'],'utf8');
?>

然后我有另一个 php 文件,我在其中使用上述 php 文件中的连接。
这样关闭连接是否正确?

index.php

include_once "setconnection.php";
$GLOBALS['connect']->close();

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    好问题!我从未在示例中的任何地方看到它。关闭连接只会为您节省内存资源。无论如何,Php 应该在脚本执行后关闭非持久连接。但是,情况可能并非总是如此。当遗留代码持续忽略关闭连接时,我的服务器 CPU 过载。 到目前为止,我们为多个功能保持一个连接,这本质上与您正在做的事情相同。很适合我们。

    参考:http://php.net/manual/en/mysqli.close.php

    【讨论】:

    • 我的问题是我在setconnection.php中定义了一个函数,如果我在那个文件末尾关闭连接,我就不能在其他php文件中调用这个函数...
    • @Daniel 那么不要关闭它吗?
    • @YourCommonSense 我知道 php 最终会关闭连接。但我在这里找到了一些建议,上面说如果你不自己关闭连接,可能会导致 CPU 过度使用。
    • @Daniel 不要听他们的
    【解决方案2】:

    在我看来,这是合法的。在关闭连接之前不要忘记检查连接是否真的打开或尚未关闭。

    【讨论】:

      【解决方案3】:

      这是完全合法的,正如PekkaAre PHP include paths relative to the file or the calling code? 上所说的,

      ...记住include() 只是将代码插入到当前运行的脚本中

      假设您有一个名为 example.php 的文件:

      function example() {
          echo 'Hello, world!';
      }
      

      然后你将它包含在 index.php 中:

      include 'example.php';
      example();
      

      这与将所有内容放在一个文件中一样:

      function example() {
          echo 'Hello, world!';
      }
      
      example();
      

      因此,在另一个文件中关闭连接确实没有任何错误,而该文件不是您打开连接的文件。

      【讨论】:

      • 我希望没有人会遵循你的想法
      • 我在 PHP 方面不是很有经验,但是,为什么不呢?
      • 因为一个连接应该打开一次。
      猜你喜欢
      • 2014-08-15
      • 2015-12-25
      • 2016-06-10
      • 1970-01-01
      • 2017-06-22
      • 2022-01-05
      • 1970-01-01
      • 2012-06-27
      • 1970-01-01
      相关资源
      最近更新 更多