ben*_*njy 62 php mysql sql pdo
当我用PHP的内置MySQL函数在PHP中打开MySQL连接时,我会执行以下操作:
$link = mysql_connect($servername, $username, $password);
mysql_select_db($dbname);
//queries etcetera
mysql_close($link);
Run Code Online (Sandbox Code Playgroud)
当我打开与PDO的连接时,它看起来像这样:
$link = new PDO("mysql:dbname=$dbname;host=$servername",$username,$password);
//prepare statements, perform queries
Run Code Online (Sandbox Code Playgroud)
我必须明确地关闭连接像我做的mysql_connect()
和mysql_close()
?如果没有,PHP如何知道我何时完成连接?
TIA.
Dre*_*awn 76
使用$link = null
让PDO知道它可以关闭连接.
成功连接到数据库后,将向您的脚本返回PDO类的实例.该连接在该PDO对象的生命周期内保持活动状态.要关闭连接,您需要通过确保删除对它的所有剩余引用来销毁对象 - 您可以通过为保存对象的变量赋值来执行此操作.如果您没有明确地执行此操作,PHP将在脚本结束时自动关闭连接.
hak*_*kre 13
PDO本身不提供这样的功能.通过PDO的连接通过PHP中的PDO对象引用来间接管理.
但有时你想要关闭连接,无论引用计数如何.要么因为你无法控制它,需要它用于测试目的或类似.
您可以通过运行SQL查询来关闭与PDO的Mysql连接.每个能够连接到Mysql服务器的用户KILL
至少能够拥有自己的线程:
/*
* 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);
Run Code Online (Sandbox Code Playgroud)
相关的Mysql文档:
相关的Stackoverflow问题:
归档时间: |
|
查看次数: |
41862 次 |
最近记录: |