如果在PHP页面上不断关闭MySQL连接会发生什么?

时间:2008-09-19 16:05:44

标签: php mysql

在每个PHP页面的开头,我打开与MySQL的连接,在整个页面中使用它并在页面末尾关闭它。但是,我经常在页面中间重定向到另一个页面,因此在这些情况下连接不会被关闭。我知道这对于Web服务器的性能并不坏,因为PHP无论如何都会自动关闭每个页面末尾的所有MySQL连接。这里是否还有其他问题需要记住,或者您是否真的不必担心在PHP中关闭数据库连接?

$mysqli = new mysqli("localhost", "root", "", "test");
...do stuff, perhaps redirect to another page...
$mysqli->close();

3 个答案:

答案 0 :(得分:18)

来自:http://us3.php.net/manual/en/mysqli.close.php

  

“打开连接(和类似资源)会在脚本执行结束时自动销毁。但是,一旦不再需要,您仍应关闭或释放所有连接,结果集和语句句柄。这将有助于返回PHP和MySQL的资源更快。“

答案 1 :(得分:4)

仅仅因为重定向并不意味着脚本停止执行。重定向只是一个正在发送的标头。如果您之后没有退出(),则脚本的其余部分将继续运行。当脚本完成运行时,它将关闭所有打开的连接(或者如果您使用持久连接,则将它们释放回池中)。别担心。

答案 2 :(得分:2)

一次可以打开多少个连接可能存在限制,因此如果您有许多用户,则可能会耗尽SQL连接。实际上,用户将看到SQL错误而不是漂亮的网页。

最好打开连接来读取数据,然后关闭它,然后显示数据,一旦用户点击“提交”,你打开另一个连接,然后提交所有更改。