Mysqli соединение пытается с разными пользователями - PullRequest
0 голосов
/ 07 мая 2010

Я пытаюсь создать класс PHP, расширяющий 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.

Есть ли какое-либо решение для этого или я должен создать класс Factory?

1 Ответ

0 голосов
/ 10 мая 2010

Не уверен, почему он не находит объект (подсказка, кто-нибудь?), Однако вы все равно можете использовать mysqli_error() для обработки ошибок, как показано в этой статье .

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

и

if(mysqli_error($this)) {
    throw new Exception(mysqli_error($this), mysqli_errno($this));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...