我得到這個錯誤訪問被拒絕用戶'用戶'@'localhost'(使用密碼:否) 當我打開第二個mysqli連接在同一個腳本中。兩個或多個mysqli連接同時拋出Acces Denied錯誤
我有一個有2個屬性(子類)的類。這兩個屬性都從DataBase類(它創建一個新的mysqli連接)擴展而來。在這個子語句實例化的那一刻,我得到了這個Access拒絕錯誤。
有沒有辦法建立兩個mysqli連接或者我的邏輯錯了,一個班沒有這樣的2個子類?
我希望我能解釋一下自己。在此先感謝
我得到這個錯誤訪問被拒絕用戶'用戶'@'localhost'(使用密碼:否) 當我打開第二個mysqli連接在同一個腳本中。兩個或多個mysqli連接同時拋出Acces Denied錯誤
我有一個有2個屬性(子類)的類。這兩個屬性都從DataBase類(它創建一個新的mysqli連接)擴展而來。在這個子語句實例化的那一刻,我得到了這個Access拒絕錯誤。
有沒有辦法建立兩個mysqli連接或者我的邏輯錯了,一個班沒有這樣的2個子類?
我希望我能解釋一下自己。在此先感謝
檢查您的max_user_connections
您的my.cfg
文件。
允許任何給定的MySQL用戶帳戶同時連接的最大數目。值爲0(默認值)表示「無限制」。
此變量具有可在服務器啓動或運行時設置的全局值。它還具有隻讀會話值,該值指示適用於與當前會話關聯的帳戶的有效同時連接限制。會話值初始化如下:
如果用戶帳戶的資源限制爲非零值
MAX_USER_CONNECTIONS
,則會話max_user_connections值設置爲該限制。否則,會話max_user_connections值被設置爲全局值。
沒有理由我能想到的打開2個連接同一數據庫服務器。你應該創建你的連接並將它作爲參數傳遞給你的函數。
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
class Foo {
/** @var \mysqli */
protected $db;
public function __construct(mysqli $mysqli) {
$this->db = $mysqli;
}
public function bar() {
$res = $this->db->query('SELECT * FROM table');
$data = array();
while($row = $res->fetch_assoc()) $data[] = $row;
return $data;
}
}
$class = new Foo($mysqli);
如果我可能會問,爲什麼要打開2個mysqli連接?爲什麼不使用相同的? – 2014-11-05 19:16:19
@thecakei因爲這兩個子類都從DataBase類擴展而來。在這種情況下,我需要在同一個腳本中同時使用這兩個腳本,但還有其他腳本必須獨立工作 – Mollo 2014-11-05 19:20:18