Heim >Datenbank >MySQL-Tutorial >Warum gibt „mysqli_num_rows()' einen Booleschen Wert anstelle einer Ergebnismenge zurück?
PHP & MySQL: Fehler „mysqli_num_rows() erwartet Parameter 1 ist mysqli_result, boolean gegeben“ wird behoben
Der Fehler „mysqli_num_rows()“ erwartet, dass Parameter 1 mysqli_result ist, boolean gegeben“ zeigt an, dass die für die Funktion mysqli_num_rows() bereitgestellte Eingabe keine gültige Ergebnismenge ist. Dieser Fehler tritt häufig auf, wenn das Eingabeargument nicht das Ergebnis einer erfolgreichen Abfrageausführung ist.
In diesem speziellen Fall tritt der Fehler in der folgenden PHP-Codezeile auf:
if (mysqli_num_rows($dbc) == 0) {
Hier wird die Variable $dbc als Eingabe für mysqli_num_rows() verwendet, sie gibt jedoch false zurück, da die auf $dbc ausgeführte Abfrage eine enthält Fehler:
$dbc = mysqli_query($mysqli,"SELECT users.*, profile.* FROM users INNER JOIN contact_info ON contact_info.user_id = users.user_id WHERE users.user_id=3");
Der Fehler in der Abfrage ist das fehlende JOIN-Schlüsselwort zwischen den Benutzer- und Profiltabellen:
SELECT users.*, profile.* --You do not join with profile anywhere. FROM users INNER JOIN contact_info ON contact_info.user_id = users.user_id WHERE users.user_id=3");
Um das Problem zu beheben, sollten Sie die Abfrage wie folgt ändern:
$dbc = mysqli_query($mysqli,"SELECT users.*, profile.* FROM users INNER JOIN profile ON contact_info.user_id = users.user_id WHERE users.user_id=3");
Durch die Korrektur der Abfrage erhält die Funktion mysqli_num_rows() nun einen gültigen Ergebnissatz und kann die Anzahl der Zeilen bestimmen im Ergebnis ist Null.
Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_num_rows()' einen Booleschen Wert anstelle einer Ergebnismenge zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!