我有太快达到连接限制的问题...我是否认为以下内容有助于解决此问题?
使用mysql_query
的旧文件<?php
mysql_close($link);
if (isset($link2)) {
mysql_close($link2);
}
?>
使用mysqli class
的较新文件class DB extends MySQLi {
function __destruct() {
$this->close();
}
}
答案 0 :(得分:1)
您也可能通过持久连接(pconnect)保持连接打开,从而导致数据库服务器汇集并堆叠连接。直到大约PHP5.2,我一直遇到麻烦?
答案 1 :(得分:0)
即使忘记mysql_close()
,当脚本完成工作时,连接也会自动关闭。请考虑提高max_clients设置my.cnf
此外,如果您只使用一个数据库,则不需要,您不需要两个连接 - 请改用一个。
答案 2 :(得分:0)
<?php
mysql_close($link);
if (isset($link2)) {
mysql_close($link2);
}
?>
这没有任何意义 - 如果知道两个变量可能包含mysql连接资源,那么关闭它们!
更好的是 - 如果你的代码很乱并且你无法理解它,那么......
<?php
@mysql_close();
@mysql_close();
@mysql_close();
?>
但是唯一可以理解这一点的地方(没有在某些细节中分析代码行为 - 在这种情况下你会知道你打开了哪些资源)是在脚本的最后 - 是连接关闭的地方无论如何。
类似地,仅在删除对对象的所有引用时才调用destruct方法 - 这稍微好一些,但根据代码结构,您可能根本没有任何好处。
确定哪些URL需要花费很长时间来处理并尝试重新分解这些代码(包括PHP和SQL),这更有意义。