【发布时间】:2011-05-09 11:12:12
【问题描述】:
我有以下代码,并在 Firefox 中刷新了这个网页 5 次,然后 MySQL 向我显示了 5 个连接。根据 PDO 手册,
持久连接未关闭 在脚本的末尾,但是 缓存并在另一个脚本时重新使用 使用相同的请求连接 证书。持久连接 缓存允许您避免开销 每建立一个新的连接 脚本需要与 数据库,从而实现更快的网络 应用。
我使用了相同的凭据,但是 MYSQL 连接的数量不断增加。即使尝试关闭与$db = null 的连接也无法关闭连接。
我的代码有什么问题?
<?php
try {
$dbh = new PDO('mysql:host=127.0.0.1;dbname=lingtong', 'root', 'xxxxxx', array(PDO::ATTR_PERSISTENT => true));
foreach ($dbh->query('SELECT * from agent') as $row)
print_r($row);
$dbh = null;
} catch (PDOException $e) {
print "Error! : " . $e->getMessage() . "<br/>";
die();
}
【问题讨论】:
-
什么“不起作用”?关闭连接还是移除持久性?
-
php.net/manual/en/pdo.connections.php 看最后一个注释。你会遇到这种情况吗?
-
您获取连接数的方法是什么?显示进程列表或?
-
这些连接缓存究竟在哪里???即使您没有缓存机制,这也有效?
-
看来您需要关闭游标并将null分配给最后一个语句对象以及关闭连接