Этот код вызывает ошибку:
$conn_obj = new MySQLi(); $conn_obj->connect($host, $username, $password);
Этот код работает:
$conn_obj = new MySQLi($host, $username, $password);
Мой вопрос: это какая-то ошибка в MySQL, или я забыл включить некоторые свойства?
Я знаю, что проблема не в том, что из этих параметров.
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()); }