PHP是否因致命错误而关闭了mysql(i)连接?

时间:2014-03-12 14:17:29

标签: php mysql

我知道PHP会在脚本执行结束时关闭所有打开的 MySQL连接,但如果发生致命错误,连接会发生什么?

  • 无论出现错误,PHP都会关闭连接吗?
  • 或者他们在一段时间后关闭了吗?
  • 或者在这种情况下是不是打开了?

我无法在此处或在Google上找到任何内容。

我使用静态连接来重用它们。此外,有__destruct()关闭它。在执行结束时,调用析构函数(我在日志文件中看到它)。 但是如果我做了一个致命错误(只是为了找出发生了什么),就不会调用析构函数。连接会发生什么?

2 个答案:

答案 0 :(得分:7)

除非使用持久连接,否则mysql连接将始终在脚本执行结束时自动关闭。

PHP致命错误将停止脚本的执行,并且将释放mysql连接。

答案 1 :(得分:3)

在发生此类崩溃的情况下,php引擎会删除所有打开的连接。就像没有崩溃一样。这是引擎的清理工作。例外:当使用presistent连接时,连接将被池化并由后续脚本重用。

你提到的析构函数是你的类中的析构函数,可能是一些包装类。如果它关闭了与mysql服务器的连接,那么php没有理由调用它。