2008-09-19 56 views
6

在每个PHP页面开始时,我打开与MySQL的连接,在整个页面中使用它并在页面结束时关闭它。但是,我经常在页面中间重定向到另一个页面,因此在这些情况下连接不会关闭。我知道这对于Web服务器的性能并不坏,因为PHP自动关闭每个页面末尾的所有MySQL连接。在这里还有什么其他问题需要记住,还是确实不需要担心在PHP中关闭数据库连接?如果MySQL连接不断在PHP页面上关闭,会发生什么情况?

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

回答

17

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

“打开连接(以及类似的资源)在脚本执行结束时自动销毁但是,你还是应该接近或免费的所有连接,结果集和语句句柄只要不再需要它们,这将有助于更快地将资源返回给PHP和MySQL。“

+0

快多少?它会继续变慢吗? “ – Pachonk 2013-02-12 06:26:13

2

可能一次打开多少个连接的限制,所以如果你有很多用户,你可能会用完SQL连接。实际上,用户将看到SQL错误,而不是漂亮的网页。

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

+0

”实际上,用户将看到SQL错误而不是漂亮的网页。“ - 我希望不要display_errors = 0;! – Ross 2008-09-19 16:21:58

3

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

相关问题