Php 是否有必要关闭PDO连接
我注意到PDO没有关闭功能。我应该关闭连接还是PDO不需要 成功连接到数据库后,PDO类的实例将返回到脚本中。连接在该PDO对象的生存期内保持活动状态。要关闭连接,您需要通过确保删除对该对象的所有剩余引用来销毁该对象——您可以通过为保存该对象的变量指定NULL来完成此操作。如果不显式地执行此操作,PHP将在脚本结束时自动关闭连接 因此答案是否定的,您不需要做任何事情,除非在脚本执行期间出于任何原因需要显式关闭连接,在这种情况下,只需将PDO对象设置为null。从PDO的页面 成功连接到数据库后,PDO类的实例将返回到脚本中。连接在该PDO对象的生存期内保持活动状态。要关闭连接,您需要通过确保删除对该对象的所有剩余引用来销毁该对象——您可以通过为保存该对象的变量指定NULL来完成此操作 如果不明确执行此操作,PHP将在脚本结束时自动关闭连接。Php 是否有必要关闭PDO连接,php,pdo,Php,Pdo,我注意到PDO没有关闭功能。我应该关闭连接还是PDO不需要 成功连接到数据库后,PDO类的实例将返回到脚本中。连接在该PDO对象的生存期内保持活动状态。要关闭连接,您需要通过确保删除对该对象的所有剩余引用来销毁该对象——您可以通过为保存该对象的变量指定NULL来完成此操作。如果不显式地执行此操作,PHP将在脚本结束时自动关闭连接 因此答案是否定的,您不需要做任何事情,除非在脚本执行期间出于任何原因需要显式关闭连接,在这种情况下,只需将PDO对象设置为null。从PDO的页面 成功连接到数据库后
编辑
我宁愿使用持久连接。不过,最好在脚本末尾关闭所有连接。这个问题取决于项目类型和连接类型 在我几乎所有的项目中,我从未手动关闭连接。在PHP中,连接(除非是持久连接)仅在请求期间打开。所以手动关闭它是非常无用的 当查看没有持久连接的项目时,很难知道何时手动关闭连接。一旦一个项目的大小超过了几个文件(而且各个组件对彼此都没有应有的了解),就很难知道何时还需要连接 在需要时再次打开连接比在请求过程中保持连接打开要昂贵得多 不过,在使用持久连接时,会出现需要手动关闭连接的情况 所以要回答你的问题: 我注意到PDO没有关闭功能 您可以在PHP中取消对象引用(以及所有对对象的引用)以手动关闭连接 我应该关闭连接还是PDO不需要
在大多数情况下,这是不必要的。您认为总是关闭PDO连接是个好主意吗?@BenjaminGruenbaum编辑。在完成PDO连接后关闭PDO连接是个好主意。@RPM“在完成PDO连接后关闭PDO连接是个好主意”[需要引用]不过,关闭连接将是一个很好的实践。其他语言在内存泄漏方面并不慷慨。@RPM这是非常正确的。我同意,如果脚本写得不好,在无限循环中运行,或者需要花费太长时间,那么这也是一个好主意。如果连接未被使用,则无需保持打开状态。@RPM除非您有特定的原因,否则关闭连接是毫无意义的。此外,如果脚本运行太长,它将被终止,连接将被关闭。@Brad,关闭连接并非毫无意义。每个连接都会占用数据库服务器中的资源。大多数服务器都配置了最大数量的并发连接。如果您主动关闭连接,就可以将该插槽释放给另一个线程,从而获得更好的总体吞吐量。@BillKarwin如果您编写的脚本立即结束,则毫无意义。我完全同意,如果您在初始查询后编写任何不需要数据的长时间运行的东西,那么您应该关闭它。如果我显式地将
PDO
objecto设置为NULL($PDO=NULL
),并使用PDO::ATTR_PERSISTENT=>true
(持久连接)创建PDO对象,它会关闭连接还是会因为连接是持久的而忽略该指令?