Maison >base de données >tutoriel mysql >Pourquoi `mysqli_num_rows()` renvoie-t-il une erreur « booléenne donnée » dans PHP et MySQL ?
PHP et MySQL : résolution de l'erreur de paramètre mysqli_num_rows() avec mysqli_result
Lors de l'intégration de HTML Purifier dans PHP pour la validation des données, il est crucial de s'assurer passage de paramètre approprié pour éviter les erreurs courantes telles que "mysqli_num_rows() s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné."
Comprendre l'erreur
En général, cette erreur se produit lorsque la fonction mysqli_num_rows() est appelée avec un argument incorrect. Il attend un objet mysqli_result valide comme premier paramètre. Dans l'extrait de code donné, le premier paramètre est $dbc, qui doit être un jeu de résultats valide à partir d'une requête MySQL.
Causes possibles
Utilisation incorrecte ou un une requête mal formée peut conduire au retour d'une valeur booléenne (FALSE) à la place d'un objet mysqli_result. Cela peut se produire si :
Résoudre le problème
Dans le code, le problème réside dans la requête SQL utilisée pour récupérer les données de la base de données :
$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");
L'erreur est causée par l'omission de la jointure avec le profil par rapport aux utilisateurs et à contact_info. La requête correcte doit être :
$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");
En corrigeant la requête, la variable $dbc renverra un objet mysqli_result valide, vous permettant d'utiliser efficacement mysqli_num_rows() :
if (mysqli_num_rows($dbc) == 0) { //...
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!