Ошибка в методе подключения MySQLi? - PullRequest
1 голос
/ 28 октября 2011

Этот код выдает ошибку:

$conn_obj = new MySQLi();
$conn_obj->connect($host, $username, $password);

Этот код работает:

$conn_obj = new MySQLi($host, $username, $password);

Мой вопрос: это какая-то ошибка в MySQL, или я забыл включитьнекоторые свойства?

Я знаю, что проблема не в этих параметрах.

1 Ответ

6 голосов
/ 28 октября 2011

MySQLi не имеет метода connect() при использовании объектно-ориентированного подхода.Соединения устанавливаются через __construct() при вызове new MySQLi($host, $user, $pass, $dbname), поэтому это ожидаемое поведение

См. Документацию по MySQLi :: __ construct () для получения полной информации.

Существует функция mysqli_connect(), которая устанавливает объект соединения MySQLi в процедурном (не OO) коде, например:

$connection = mysqli_connect($host, $user, $pass, $dbname);

При настройке объекта MySQLi через MySQLi::init() вы можетезатем вызовите метод real_connect() для объекта, возвращенного после установки параметров.

Адаптировано из документов MySQLi:

$mysqli = mysqli_init();
if (!$mysqli) {
    die('mysqli_init failed');
}

if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...