用PHP中的PDO打开的SQL连接是否必须关闭?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (109)

当我使用PHP的内置MySQL函数在PHP中打开MySQL连接时,我做以下操作:

$link = mysql_connect($servername, $username, $password);
mysql_select_db($dbname);
//queries etcetera
mysql_close($link);

当我打开与PDO的连接时,如下所示:

$link = new PDO("mysql:dbname=$dbname;host=$servername",$username,$password);
//prepare statements, perform queries

我是否必须像我使用的那样显式地关闭连接?

提问于
用户回答回答于

使用$link = null让PDO知道它可以关闭连接。

用户回答回答于

PDO本身并不提供这样的功能。通过PDO的连接是通过PHP中的PDO对象重构间接管理的。

您可以关闭MySQL与PDO的连接通过运行SQL查询:

/*
 * Close Mysql Connection (PDO)
 */

$pdo_mysql_close = function (PDO $connection) {

    $query = 'SHOW PROCESSLIST -- ' . uniqid('pdo_mysql_close ', 1);
    $list  = $connection->query($query)->fetchAll(PDO::FETCH_ASSOC);
    foreach ($list as $thread) {
        if ($thread['Info'] === $query) {
            return $connection->query('KILL ' . $thread['Id']);
        }
    }
    return false;
};

$pdo_mysql_close($conn);

扫码关注云+社区

领取腾讯云代金券