如果在PHP页面上没有连续关闭MySQL连接,会发生什么情况?
时间:2020-03-06 14:26:42 来源:igfitidea点击:
在每个PHP页面的开头,我打开与MySQL的连接,在整个页面中使用它,然后在页面末尾将其关闭。但是,我经常在页面中间重定向到另一个页面,因此在这种情况下,连接不会关闭。我知道这对Web服务器的性能来说还不错,因为PHP会在每个页面的结尾自动关闭所有MySQL连接。这里还有其他需要牢记的问题吗,还是真的不必担心要用PHP关闭数据库连接吗?
$mysqli = new mysqli("localhost", "root", "", "test"); ...do stuff, perhaps redirect to another page... $mysqli->close();
解决方案
来自:http://us3.php.net/manual/zh/mysqli.close.php
"Open connections (and similar resources) are automatically destroyed at the end of script execution. However, you should still close or free all connections, result sets and statement handles as soon as they are no longer required. This will help return resources to PHP and MySQL faster."
一次可以打开多少个连接可能会有限制,因此,如果我们有很多用户,则SQL连接可能用完了。实际上,用户将看到SQL错误,而不是漂亮的网页。
最好打开一个连接以读取数据,然后关闭它,然后显示数据,并且一旦用户单击"提交",我们就打开了另一个连接,然后提交所有更改。
仅仅因为重定向并不意味着脚本会停止执行。重定向只是发送的标头。如果我们之后没有退出(),则脚本的其余部分将继续运行。当脚本运行完毕后,它将关闭所有打开的连接(如果使用持久连接,则将它们释放回池中)。不用担心