我有一個很大的程序風格的php/mysql網站,它被分成許多不同的文件。在每個文件中,我包含了我的dbconn.php,以確保數據庫連接可用。PHP阻止多個MySQL連接
它看起來是喜歡這樣的:
的index.php
<?php
include_once ('header.php');
include_once ('nav.php');
include_once ('content.php');
include_once ('sidebar.php');
include_once ('footer.php');
?>
並在每個文件我通過include_once調用其他幾個文件。所以我總共拿出了大約30個不同的文件。
每個文件的開頭爲:
include_once($_SERVER['DOCUMENT_ROOT'].'/dbconn.php');
由於我使用include_once,dbconn.php不宜多裝那麼一次,但最近我得到以下PHP警告。
PHP Warning: mysqli_connect(): (HY000/1226): User 'username' has exceeded the 'max_user_connections' resource (current value: 20) in /var/www/html/dbconn.php on line 10
我dbconn.php看起來是這樣的:
<?php
$host = "localhost";
$user = "username";
$pass = "password";
$db = "dbname";
if(!mysqli_thread_id($con)){
$con = mysqli_connect($host, $user, $pass, $db);
mysqli_set_charset($con, 'utf8');
}
unset($host,$user,$pass,$db);
?>
所以就有了雙重檢查。 如果已經有一個打開的mysql連接,該文件應該基本不做任何事情。
我到底做錯了什麼? 爲什麼我得到這個PHP警告,我如何減少mysql連接的數量?
http://stackoverflow.com/questions/9389201/max-user-connections-set-to-200-still-getting-error看看這個帖子..可能已經被解決了 – DWolf
你也可以考慮單例模式來處理數據庫連接。 – Sugar
@D狼:我正在爲3號場景苦苦掙扎,但我還能做些什麼嗎?我有這樣的感覺,我負責連接數量巨大 – user3614800