Heim > Backend-Entwicklung > PHP-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
Freigeben: 2024-11-28 00:08:12
Original
686 Leute haben es durchsucht

Why Does mysqli_num_rows() Return

mysqli_num_rows() Funktionsfehler in PHP und MySQL: Eine detaillierte Anleitung

Problem:

Beim Aufruf der Funktion mysqli_num_rows() erscheint der Fehler „mysqli_num_rows() erwartet, dass Parameter 1 mysqli_result ist, boolean gegeben“ wird festgestellt. Dieser Fehler weist auf ein Problem mit dem an die Funktion übergebenen Parameter hin.

Analyse und Lösung:

Die Funktion mysqli_num_rows() erwartet, dass der erste Parameter ein gültiges mysqli_result-Objekt ist . Im bereitgestellten Code wird fälschlicherweise $dbc als Parameter verwendet. Eine Untersuchung des Codes zeigt jedoch, dass $dbc das Ergebnis eines mysqli_query()-Aufrufs ist.

Das eigentliche Problem liegt in der Abfrage selbst. Die Abfrage versucht, einen INNER JOIN zwischen den Tabellen „users“ und „profile“ durchzuführen. In der Abfrage ist jedoch keine explizite JOIN-Bedingung angegeben. Dies führt dazu, dass die Abfrage „false“ zurückgibt, was dann an die Funktion mysqli_num_rows() übergeben wird und den Fehler auslöst.

Um dieses Problem zu beheben, müssen Sie in der Abfrage eine gültige JOIN-Bedingung angeben. In diesem Fall sollten Sie wahrscheinlich „users“ und „profile“ in ihren user_id-Feldern JOIN. Sobald die Abfrage korrigiert ist, sollte sie ein gültiges mysqli_result-Objekt zurückgeben, das dann an die Funktion mysqli_num_rows() übergeben werden kann.

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

Mit dieser Anpassung sollte die Abfrage erfolgreich ausgeführt werden und ein mysqli_result-Objekt zurückgeben, das von verwendet werden kann mysqli_num_rows()-Funktion ausführen, ohne den Fehler auszulösen.

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage