Abrufen von Zeilen aus einem MySQL-Ergebnisobjekt mit mysqli
Um alle Zeilen aus einem MySQL-Ergebnisobjekt abzurufen und ein neues Array zu erstellen, um sie zu speichern, Die Methode fetch_row() kann verwendet werden. Es ist jedoch wichtig, einen Syntaxfehler zu beheben, der dazu führen kann, dass anstelle der erwarteten Zeilen ein leeres Array zurückgegeben wird.
Problem:
Im bereitgestellten Codeausschnitt Am Ende der While-Schleifenanweisung befindet sich ein fehlerhaftes Semikolon:
while($row = $result->fetch_row());
Dieses Semikolon beendet die While-Schleife vorzeitig, was dazu führt, dass der Code innerhalb der Schleife nicht ausgeführt wird.
Lösung:
Um dieses Problem zu beheben, entfernen Sie einfach das Semikolon, um die korrekte Ausführung der Schleife zu ermöglichen :
while($row = $result->fetch_row()) { $rows[] = $row; }
Fehlerberichterstattung:
Zusätzlich, Es ist ratsam, MySQLi aufzufordern, alle aufgetretenen Probleme zu melden:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $sql = new mysqli($config['host'], $config['user'], $config['pass'], $config['db_name']); $query = "SELECT domain FROM services"; $result = $sql->query($query); $rows = []; while($row = $result->fetch_row()) { $rows[] = $row; } return $rows;
Wenn Sie diese Vorschläge befolgen, sollten Sie in der Lage sein, alle Zeilen aus dem Ergebnisobjekt erfolgreich abzurufen und im $rows-Array zu speichern.
Das obige ist der detaillierte Inhalt vonWie vermeide ich leere Arrays beim Abrufen von MySQL-Zeilen mit „mysqli_fetch_row()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!