我连接到使用
什么时候应该关闭数据库连接?
$dbh = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
MySQL数据库在阅读通过论坛和教程,它说,它是很好的做法(虽然不是很重要)尽快关闭数据库连接,你用它完成。所以我的问题是这样的:我应该在最后一次数据库操作执行时总是添加$dbh = null;
?
我连接到使用
什么时候应该关闭数据库连接?
$dbh = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
MySQL数据库在阅读通过论坛和教程,它说,它是很好的做法(虽然不是很重要)尽快关闭数据库连接,你用它完成。所以我的问题是这样的:我应该在最后一次数据库操作执行时总是添加$dbh = null;
?
在php中,您不必经常关闭数据库连接。因为在代码完成后,Web服务器会关闭所有到数据库的连接,因为执行已结束。但是在整个执行期间,出于安全原因,您应该关闭它。但是,如果您创建了一个例子守护程序,则出于安全和内存方面的原因,您必须更频繁地关闭它。打开的连接对于直接数据库攻击总是很危险,并保留一些内存。
如何关闭连接使其更安全? – PeeHaa
假设你不关闭任何与MySQL相关的连接,并假设你有一个包含很多部分的应用程序,并且每个部分可以分别与db一起工作。由于他们单独执行,您将分别连接数据库。如果你不关闭其中的任何一个,你的安全问题将会出现一些内存问题。例如,如果MySQL达到其最大连接限制,则应用程序将会死亡。然后,对应用程序的每个查询都将被视为对MySQL的DOS攻击。最终,你的服务器将会因为大量未处理的mysql查询而死亡。 – mtndesign
您不打开多个连接。你打开一个并将其传递给所有需要它的“片段”。如果你需要在你的应用程序中打开很多不同的连接,你经常会犯这样的错误。 – PeeHaa
大多数Web应用程序都需要在多个点上访问数据库。只需将其保持打开状态,并在请求完成时让它自动关闭。 – PeeHaa
http://php.net/manual/en/pdo.connections.php –
即使设置为null,也不是立即执行的,因为它会让PHP的垃圾回收异想天开。我怀疑它在实践中有很大的不同。 – eggyal