Heim >Datenbank >MySQL-Tutorial >Warum gibt „mysqli_num_rows()' „erwartet, dass Parameter 1 mysqli_result ist, boolescher Wert gegeben' zurück?

Warum gibt „mysqli_num_rows()' „erwartet, dass Parameter 1 mysqli_result ist, boolescher Wert gegeben' zurück?

DDD
DDDOriginal
2024-12-08 18:00:34571Durchsuche

Why does `mysqli_num_rows()` return

mysqli_num_rows() erwartet, dass Parameter 1 mysqli_result ist, boolean gegeben

Fehleranalyse

Die Fehlermeldung „mysqli_num_rows( ) erwartet, dass Parameter 1 mysqli_result ist, „Boolescher Wert gegeben“ tritt auf, wenn versucht wird, die Funktion mysqli_num_rows() auf einen booleschen Wert anstelle eines gültigen MySQL-Ergebnissatzes (mysqli_result) zu verwenden.

Quelle des Fehlers

Im bereitgestellten Code wird die Fehler tritt in Zeile 22 auf:

if (mysqli_num_rows($dbc) == 0) {

Debugging des Problems

The Die Variable $dbc wird in Zeile 13 mithilfe der Funktion mysqli_query() zugewiesen. Bei der Untersuchung der Abfrage wird jedoch ein Fehler angezeigt:

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

Die Abfrage versucht, die Tabellen „users“ und „profile“ mithilfe eines „INNER JOIN“ zu verknüpfen, es gibt jedoch keine Verknüpfungsbedingung zwischen „profile“ und jeder andere Tisch. Als Ergebnis gibt die Abfrage „false“ (boolescher Wert „false“) zurück.

Lösung

Um den Fehler zu beheben, muss die Abfrage korrigiert werden, um eine ordnungsgemäße Verknüpfungsbedingung einzuschließen. Hier ist die korrigierte Abfrage:

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN profile 
                                 ON users.user_id = profile.user_id
                                 WHERE users.user_id=3");

Mit dieser Korrektur gibt die Abfrage einen gültigen MySQL-Ergebnissatz zurück, sodass mysqli_num_rows() korrekt funktionieren kann.

Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_num_rows()' „erwartet, dass Parameter 1 mysqli_result ist, boolescher Wert gegeben' 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