我在PDO手册中读到,要关闭连接,您应该使用以下命令:
$connection = null;
但是,有人建议,由于PHP5.3有了一个新的GC,应该使用以下内容:
unset($connection);
我需要一劳永逸地知道,哪一个是首选的,还是相同的?
最佳答案
他们做同样的事。取消设置$pdo
句柄并将其设置为空都会关闭连接。
你可以自己测试一下。在一个窗口中运行以下脚本,然后在第二个窗口中打开mysql客户端,每隔几秒钟运行一次SHOW PROCESSLIST
,查看连接何时消失。
<?php
$pdo = new PDO(..);
sleep(10);
unset($pdo);
echo "pdo unset!\n";
sleep(10);
然后将
unset($pdo)
更改为$pdo=null;
并再次运行测试。<?php
$pdo = new PDO(..);
sleep(10);
$pdo = null;
echo "pdo set null!\n";
sleep(10);
最后的额外
sleep()
让您在php脚本终止之前有一点时间查看连接是否已断开(无论如何这都会断开连接)。