Maison > base de données > tutoriel mysql > Pourquoi `mysqli_num_rows()` renvoie-t-il une erreur « booléenne donnée » dans PHP et MySQL ?

Pourquoi `mysqli_num_rows()` renvoie-t-il une erreur « booléenne donnée » dans PHP et MySQL ?

Linda Hamilton
Libérer: 2024-12-09 00:17:11
original
209 Les gens l'ont consulté

Why Does `mysqli_num_rows()` Return a

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 :

  • La syntaxe de la requête comporte une erreur.
  • La fonction mysqli_query() n'est pas correctement exécutée.
  • La requête renvoie un jeu de résultats vide .

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");
Copier après la connexion

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");
Copier après la connexion

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) {
        //...
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal