Heim >Datenbank >MySQL-Tutorial >Warum gibt „mysqli_num_rows()' in PHP und MySQL einen „Boolean gegebenen' Fehler zurück?

Warum gibt „mysqli_num_rows()' in PHP und MySQL einen „Boolean gegebenen' Fehler zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-12-09 00:17:11209Durchsuche

Why Does `mysqli_num_rows()` Return a

PHP & MySQL: Beheben eines mysqli_num_rows()-Parameterfehlers mit mysqli_result

Bei der Integration von HTML Purifier in PHP zur Datenvalidierung ist es wichtig, dies sicherzustellen Korrekte Parameterübergabe, um häufige Fehler wie „mysqli_num_rows() erwartet Parameter 1“ zu vermeiden sei mysqli_result, boolean gegeben.“

Verstehen des Fehlers

Normalerweise tritt dieser Fehler auf, wenn die Funktion mysqli_num_rows() mit einem falschen Argument aufgerufen wird. Als ersten Parameter erwartet es ein gültiges mysqli_result-Objekt. Im angegebenen Codeausschnitt ist der erste Parameter $dbc, der ein gültiger Ergebnissatz aus einer MySQL-Abfrage sein muss.

Mögliche Ursachen

Falsche Verwendung oder a Eine fehlerhafte Abfrage kann dazu führen, dass ein boolescher Wert (FALSE) anstelle eines mysqli_result-Objekts zurückgegeben wird. Dies kann passieren, wenn:

  • Die Abfragesyntax einen Fehler aufweist.
  • Die Funktion mysqli_query() wird nicht ordnungsgemäß ausgeführt.
  • Die Abfrage gibt einen leeren Ergebnissatz zurück .

Problem lösen

In Im bereitgestellten Code liegt das Problem in der SQL-Abfrage, die zum Abrufen von Daten aus der Datenbank verwendet wird:

$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 wird durch das Weglassen der Verknüpfung mit dem Profil im Vergleich zu „users“ und „contact_info“ verursacht. Die korrekte Abfrage sollte wie folgt lauten:

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

Durch Korrigieren der Abfrage gibt die Variable $dbc ein gültiges mysqli_result-Objekt zurück, sodass Sie mysqli_num_rows() effektiv verwenden können:

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

Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_num_rows()' in PHP und MySQL einen „Boolean gegebenen' Fehler 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