Mysqli连接尝试与不同的用户

时间:2010-05-07 19:35:57

标签: php mysqli

我正在尝试创建一个扩展mysqli的PHP类,如果连接失败,它可以与另一个用户连接。用代码解释可能更容易:

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。

有没有解决方法或者我应该创建一个Factory类?

1 个答案:

答案 0 :(得分:0)

不确定为什么它找不到对象(提示,任何人?),但仍然可以使用mysqli_error()进行错误处理,如this article所示。

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

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