【发布时间】:2015-07-22 09:43:22
【问题描述】:
我已经看到很多关于.NET 和C# 应用程序的答案,但是我没有找到我正在寻找的关于Web 应用程序的内容(或者我没有很好地搜索,对此我深表歉意)。
我的问题是关于查询期间与数据库的连接:我应该打开和关闭我正在执行的每个查询的连接,还是应该创建一个连接并保持很长时间?
我想这是第一个,但我想要一些关于 Performance 和 Security 之间差异的信息。
此外,这足以关闭连接吗:
$dbh = new PDO('mysql:host=localhost;dbname=foo', '', '')
// queries
$dbh = null;
【问题讨论】:
-
PHP 将在脚本结束时自动关闭连接。这并不是说您不应该手动执行此操作。通过手动操作,您可以将新的数据库打开到不同的数据库或服务器。就我个人而言,我相信一旦你不需要它们就关闭它们会提高性能,因为 PDO 查询已经关闭并停止执行任务,这可能只会减少 1-3ms 的时间,但在你需要的时候就足够了。
-
PHP 会自动关闭连接,即使我在每次查询前使用
global $dbh? -
未全局定义,将 PDO 对象视为持久连接,如果全局定义,它不会自动关闭连接,PHP 将存储该全局并使其在后台运行。
-
那我以后也得关了吧?
-
也许会,我会测试一下,我会回复你。