Heim > Datenbank > MySQL-Tutorial > Warum gibt „mysqli_num_rows()' einen Booleschen Wert anstelle einer Ergebnismenge zurück?

Warum gibt „mysqli_num_rows()' einen Booleschen Wert anstelle einer Ergebnismenge zurück?

Mary-Kate Olsen
Freigeben: 2024-12-07 19:49:14
Original
675 Leute haben es durchsucht

Why Does `mysqli_num_rows()` Return a Boolean Instead of a Result Set?

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) {
Nach dem Login kopieren

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");
Nach dem Login kopieren

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");
Nach dem Login kopieren

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");
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage