2010-05-07 93 views
0

我想創建一個PHP類擴展mysqli,如果連接失敗,能夠與另一個用戶連接。這可能是更容易的代碼解釋:mysqli連接嘗試不同的用戶

public function __construct() { 
    $users = new ArrayObject(self::$user); 
    $passwords = new ArrayObject(self::$pass); 
    $itUser = $users->getIterator(); 
    $itPass = $passwords->getIterator(); 

    parent::__construct(self::$host, $itUser->current(), $itPass->current(), self::$prefix.self::$db); 
    while($this->connect_errno && $itUser->valid()){ 
     $itUser->next(); 
     $itPass->next(); 
     $this->change_user($itUser->current(), $itPass->current(), self::$prefix.self::$db); 
    } 

    if($this->connect_errno) 
     throw new Exception("Error", $this->connect_errno); 
} 

$user$pass是包含用戶名和密碼的陣列靜態變量。 如果第一個用戶無法連接,我會嘗試下一個。

這裏的問題是與$this->connect_errno。它說它無法找到Mysqli。

有沒有解決方案,或者我應該創建一個工廠類?

回答

0

不知道爲什麼它找不到對象(提示,任何人?),但是仍然可以使用mysqli_error()進行錯誤處理,如this article中所示。

while(!mysqli_error($this) && $itUser->valid()) { 
    // (...) 
} 

if(mysqli_error($this)) { 
    throw new Exception(mysqli_error($this), mysqli_errno($this)); 
}