2011-05-24 95 views
0

我有一个问题,太快达到我的连接限制...我是否正确认为以下将有助于解决这个问题?MySQL连接限制

在旧文件中使用的mysqli类

class DB extends MySQLi { 
    function __destruct() { 
    $this->close(); 
    } 
} 
+2

为什么你需要首先建立多个连接:) – Catalin 2011-05-24 12:49:07

+0

'我是正确的thinking' - 检查它在实践中,这是你的脚本。 – 2011-05-24 12:50:04

回答

0

连接时,脚本结束它的工作,即使你忘记mysql_close()自动关闭使用的mysql_query

<?php 
mysql_close($link); 
if (isset($link2)) { 
    mysql_close($link2); 
} 
?> 

在较新的文件。考虑提高max_clients设置my.cnf

此外,如果你只使用一个数据库,你不需要,你不需要两个连接 - 使用一个。

+0

我正在使用两个数据库,尽管它因脚本而异。所以问题是数量的问题,而不是你认为的联系? – 2011-05-24 12:55:09

+0

@John Smith,是的,如果你有很多重大的查询,这意味着连接已经打开了一段时间。较少的查询意味着较少的连接。 – 2011-05-24 13:05:17

1

您可能还会通过持续连接(pconnect)保持连接打开,导致您的数据库服务器汇集并堆叠连接。直到大约PHP5.2,我遇到了麻烦。

0
<?php 
mysql_close($link); 
if (isset($link2)) { 
    mysql_close($link2); 
} 
?> 

这没有任何意义 - 如果知道这两个变量可能包含mysql连接资源,则关闭两者!

更重要的是 - 如果你的代码是一个烂摊子,你不能做它的意义,然后...

<?php 
@mysql_close(); 
@mysql_close(); 
@mysql_close(); 
?> 

但唯一的地方,你可以理智地把这个(没有分析该代码的行为一些细节 - 在这种情况下,你会知道是在脚本结束什么样的资源,你必须打开) - 这哪里是连接关闭后得到反正

同样,当一个对象的所有引用删除自毁方法只叫 - 这是略好,但根据代码结构,你可能会得到任何好处可言。

它更为明智,以确定哪些网址花费很长的时间来处理,并试图重新因子代码(PHP和SQL)这些。