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