sql >> Database teknologi >  >> RDS >> Mysql

Det nye Mysqli-objekt er null

Jeg havde også dette problem og var ved at blive sindssyg med at prøve at fejlfinde det. Det viser sig, at nogle gange af en eller anden grund bliver mysqli-objektet ikke udfyldt, men direkte adgang til dets egenskaber udfører stadig den oprindelige kode bag det. Så selvom en var_dump af hele mysqli-objektet viser null-egenskaber, er de der, hvis du tilgår dem individuelt. Hvis errorno viser sig at være falsk, har du muligvis udført en gyldig forespørgsel med et tomt resultatsæt, som du ikke havde forventet. Håber dette hjælper.

$mysqli = mysqli_connect('localhost', 'root', '', 'test', 3306);

var_dump($mysqli);

var_dump($mysqli->client_info);
var_dump($mysqli->client_version);
var_dump($mysqli->info);

og outputtet:

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


  1. Fejl ved indstilling af egenskabsværdier; indlejret undtagelse er org.springframework.beans.NotWritablePropertyException:

  2. vælg de TOP N rækker fra en tabel

  3. Sådan beregnes forskellen mellem to tidsstempler i SQLite

  4. Hvordan ændrer jeg SQL Server 2005 til at skelne mellem store og små bogstaver?