И аз имах този проблем и полудях, опитвайки се да го отстраня. Оказва се, че понякога по някаква причина 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