2011-05-24 93 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)這些。