2016-06-29 28 views
0

Sehr geehrte alle ich bekomme Fehler, wenn ich versuche, eine Tabelle zu erstellen durch Migration. Ich verfolge Fehler immer:Schwerwiegender Fehler: Aufruf einer Member-Funktion num_rows() auf boolean in C: xamp htdocs project24 system database DB_driver.php in Zeile 768

Fatal error: Call to a member function num_rows() on boolean 
in C:\xamp\htdocs\project24\system\database\DB_driver.php on line 768 

Mein Code ist:

if ($query->num_rows() > 0) 
    { 
     foreach ($query->result_array() as $row) 
     { 
      if (isset($row['TABLE_NAME'])) 
      { 
       $retval[] = $row['TABLE_NAME']; 
      } 
      else 
      { 
       $retval[] = array_shift($row); 
      } 
     } 
    } 
    $this->data_cache['table_names'] = $retval; 
    $ex=$this->data_cache['table_names']; 
    return $ex; 
} 

Zeilennummer 768

enter image description here

Bitte helfen Sie mir f raus Aus diesem Fehler

Antwort

0

Ich nehme an, dass $ Abfrage ist das Ergebnis der Abfrage senden und erhalten Antwort. Ich werde erklären, es mit mehr sachgemäßen var Namen:

if($result = connection()->query($query)) $rs = mysqli_fetch_array($result); 

Ok, an diesem Punkt haben Sie die erste Zeile auf $ rs, es ist egal, ob $ rs Leere hier. Denken Sie daran, dass die mysql-Engine, wenn Sie einen CREATE-Satz verwenden, das Ergebnis void (0 cols) zurückgibt, sodass php es als wahr (wenn Tabelle erstellt) oder falsch (wenn nicht) annehmen kann, also boolesch ist. Im Fall machen Sie dort wählen, und Sie wollen etwas in einer Schleife tun, werden Sie wie diese folgen:

while ($rs != ''){ 

//do something with $rs[index]; 

$rs = mysqli_fetch_array($result); 
//to take next row 
} 
connection()-close(); 

hoffe, es hilft. Prost!