【发布时间】:2018-08-20 12:35:38
【问题描述】:
在我的 php 脚本中,当我在某些 PDO mysql 连接上执行查询时,在检查 mysql 日志时,我看不到连接正在关闭。
PHP 代码:
?php
$db = new PDO('mysql:host=HOST;dbname=DB',USER,PASSWORD);
$db->exec("SHOW TABLES");
$db = null;
?>
Mysql 日志:
180312 18:31:45 9048429 Connect USER@HOST on DB
9048429 Query SHOW TABLES
不过,当我删除查询时,我可以在 Mysql 日志中看到 mysql 连接已关闭。
php代码:
?php
$db = new PDO('mysql:host=HOST;dbname=DB',USER,PASSWORD);
$db = null;
?>
Mysql日志:
180312 18:33:54 9048515 Connect USER@HOST on DB
9048515 Quit
我必须在我的脚本中明确关闭 mysql 连接以防止连接过多。我该怎么做?
【问题讨论】:
-
我会说连接没有关闭,因为您有未获取的数据。
-
我认为您还需要关闭结果集。但是,您当前的代码不使用结果集。 '$results = $db->exec("SHOW TABLES");'然后'$results = null;'然后'$db = null;'
-
特别是来自文档的这条评论可能很有用:php.net/manual/en/pdo.connections.php#114822