我知道PHP会在脚本执行结束时关闭所有打开的 MySQL连接,但如果发生致命错误,连接会发生什么?
我无法在此处或在Google上找到任何内容。
我使用静态连接来重用它们。此外,有__destruct()
关闭它。在执行结束时,调用析构函数(我在日志文件中看到它)。
但是如果我做了一个致命错误(只是为了找出发生了什么),就不会调用析构函数。连接会发生什么?
答案 0 :(得分:7)
除非使用持久连接,否则mysql连接将始终在脚本执行结束时自动关闭。
PHP致命错误将停止脚本的执行,并且将释放mysql连接。
答案 1 :(得分:3)
在发生此类崩溃的情况下,php引擎会删除所有打开的连接。就像没有崩溃一样。这是引擎的清理工作。例外:当使用presistent连接时,连接将被池化并由后续脚本重用。
你提到的析构函数是你的类中的析构函数,可能是一些包装类。如果它关闭了与mysql服务器的连接,那么php没有理由调用它。