是否有必要关闭 PDO 连接

2022-08-30 15:36:22

我注意到PDO没有关闭功能。我应该关闭连接还是PDO不需要?


答案 1

成功连接到数据库后,PDO 类的实例将返回到脚本中。连接在该 PDO 对象的生存期内保持活动状态。若要关闭连接,需要通过确保删除对对象的所有剩余引用来销毁该对象 - 通过将 NULL 分配给保存该对象的变量来执行此操作。如果您没有明确执行此操作,PHP 将在脚本结束时自动关闭连接。

http://php.net/manual/en/pdo.connections.php

所以答案是否定的,你不需要做任何事情,除非你出于任何原因需要在脚本执行期间显式关闭连接,在这种情况下,只需将PDO对象设置为null。


答案 2

这个问题有点取决于项目类型和连接类型。

在我几乎所有的项目中,我从未手动关闭过连接。在 PHP 中,连接(除非是持久连接)仅在请求期间打开。因此,无论如何,手动关闭它都是毫无用处的。

在查看没有持久连接的项目时,很难知道何时手动关闭连接。一旦一个项目变得大于几个文件(并且各个组件彼此都不知道它们应该知道),就很难知道何时仍然需要连接。

并且在需要时再次打开连接比在请求期间仅将其保持打开状态要昂贵得多。

但是,在使用持久连接时,在某些情况下,您需要手动关闭连接。

因此,要回答您的问题:

我注意到PDO没有关闭功能。

您可以取消对象引用(以及对对象的所有引用)以在 PHP 中手动关闭连接。

我应该关闭连接还是PDO不需要?

在大多数情况下,这是没有必要的。


推荐