在每个PHP页面的开头,我打开与MySQL的连接,在整个页面中使用它并在页面末尾关闭它。但是,我经常在页面中间重定向到另一个页面,因此在这些情况下连接不会被关闭。我知道这对于Web服务器的性能并不坏,因为PHP无论如何都会自动关闭每个页面末尾的所有MySQL连接。这里是否还有其他问题需要记住,或者您是否真的不必担心在PHP中关闭数据库连接?
$mysqli = new mysqli("localhost", "root", "", "test");
...do stuff, perhaps redirect to another page...
$mysqli->close();
答案 0 :(得分:18)
来自:http://us3.php.net/manual/en/mysqli.close.php
“打开连接(和类似资源)会在脚本执行结束时自动销毁。但是,一旦不再需要,您仍应关闭或释放所有连接,结果集和语句句柄。这将有助于返回PHP和MySQL的资源更快。“
答案 1 :(得分:4)
仅仅因为重定向并不意味着脚本停止执行。重定向只是一个正在发送的标头。如果您之后没有退出(),则脚本的其余部分将继续运行。当脚本完成运行时,它将关闭所有打开的连接(或者如果您使用持久连接,则将它们释放回池中)。别担心。
答案 2 :(得分:2)
一次可以打开多少个连接可能存在限制,因此如果您有许多用户,则可能会耗尽SQL连接。实际上,用户将看到SQL错误而不是漂亮的网页。
最好打开连接来读取数据,然后关闭它,然后显示数据,一旦用户点击“提交”,你打开另一个连接,然后提交所有更改。