У меня тоже была эта проблема, и я сходил с ума, пытаясь ее отладить.Оказывается, что иногда по какой-то причине объект mysqli не заполняется, но прямой доступ к его свойствам все еще выполняет собственный код, стоящий за ним.Так что, хотя var_dump всего объекта mysqli показывает нулевые свойства, они есть, если вы обращаетесь к ним по отдельности.Если errorno оказывается ложным, возможно, вы выполнили правильный запрос с пустым набором результатов, который вы не ожидали.Надеюсь, это поможет.
$mysqli = mysqli_connect('localhost', 'root', '', 'test', 3306);
var_dump($mysqli);
var_dump($mysqli->client_info);
var_dump($mysqli->client_version);
var_dump($mysqli->info);
и вывод:
object(mysqli)[1]
public 'affected_rows' => null
public 'client_info' => null
public 'client_version' => null
public 'connect_errno' => null
public 'connect_error' => null
public 'errno' => null
public 'error' => null
public 'field_count' => null
public 'host_info' => null
public 'info' => null
public 'insert_id' => null
public 'server_info' => null
public 'server_version' => null
public 'stat' => null
public 'sqlstate' => null
public 'protocol_version' => null
public 'thread_id' => null
public 'warning_count' => null
string 'mysqlnd 5.0.8-dev - 20102224 - $Revision: 321634 $' (length=50)
int 50008
null
int 0
string 'localhost via TCP/IP' (length=20)
string '5.5.20-log' (length=10)
int 50520