Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt „mysqli_num_rows()' einen booleschen Wert anstelle eines „mysqli_result'-Objekts zurück?

Warum gibt „mysqli_num_rows()' einen booleschen Wert anstelle eines „mysqli_result'-Objekts zurück?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-29 03:14:12548Durchsuche

Why Does `mysqli_num_rows()` Return a Boolean Instead of a `mysqli_result` Object?

PHP & MySQL: mysqli_num_rows() erwartet, dass Parameter 1 mysqli_result ist, boolean gegeben

Problem

Beim Integrieren von HTML Purifier in ein PHP-Skript, In Zeile 22 tritt ein Fehler auf: mysqli_num_rows() erwartet Parameter 1 bis sei mysqli_result, boolean gegeben. Der Fehler wird ausgelöst, wenn versucht wird, die Anzahl der von einer MySQL-Abfrage zurückgegebenen Zeilen zu überprüfen.

Lösung

Der Fehler wird durch eine falsche SQL-Abfrage in Zeile 22 verursacht, die lautet:

$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 lautet: „Sie treten nirgendwo mit einem Profil bei.“ Dies bedeutet, dass die Abfrage versucht, die Benutzer- und Profiltabellen in der Spalte „user_id“ zu verknüpfen, die Profiltabelle jedoch nicht in der FROM-Klausel enthalten ist.

Um das Problem zu beheben, muss die Profiltabelle in einbezogen werden die FROM-Klausel, etwa so:

$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");

Mit dieser Änderung verbindet die Abfrage die Benutzer- und Profiltabellen korrekt und gibt die gewünschten Ergebnisse zurück.

Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_num_rows()' einen booleschen Wert anstelle eines „mysqli_result'-Objekts zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn