Maison > développement back-end > tutoriel php > Pourquoi mysqli_num_rows() renvoie-t-il « s'attend-il à ce que le paramètre 1 soit mysqli_result, booléen donné » ?

Pourquoi mysqli_num_rows() renvoie-t-il « s'attend-il à ce que le paramètre 1 soit mysqli_result, booléen donné » ?

DDD
Libérer: 2024-11-28 00:08:12
original
686 Les gens l'ont consulté

Why Does mysqli_num_rows() Return

Erreur de fonction mysqli_num_rows() dans PHP et MySQL : un guide détaillé

Problème :

Lors de l'appel de la fonction mysqli_num_rows(), l'erreur "mysqli_num_rows() attend le paramètre 1 pour être mysqli_result, booléen donné" est rencontré. Cette erreur indique un problème avec le paramètre passé à la fonction.

Analyse et résolution :

La fonction mysqli_num_rows() s'attend à ce que le premier paramètre soit un objet mysqli_result valide . Dans le code fourni, $dbc est utilisé par erreur comme paramètre. Cependant, l'examen du code révèle que $dbc est le résultat d'un appel à mysqli_query().

Le véritable problème réside dans la requête elle-même. La requête tente d'effectuer une INNER JOIN entre les tables "users" et "profile". Cependant, aucune condition JOIN explicite n’est spécifiée dans la requête. Cela entraîne le retour de la requête false, qui est ensuite transmise à la fonction mysqli_num_rows() et déclenche l'erreur.

Pour résoudre ce problème, vous devez spécifier une condition JOIN valide dans la requête. Dans ce cas, vous devriez probablement REJOINDRE les "utilisateurs" et le "profil" dans leurs champs user_id. Une fois la requête corrigée, elle doit renvoyer un objet mysqli_result valide, qui peut ensuite être transmis à la fonction mysqli_num_rows().

Requête corrigée :

$dbc = mysqli_query($mysqli, "
SELECT users.*, profile.*
FROM users 
INNER JOIN profile 
ON users.user_id = profile.user_id 
WHERE users.user_id=3
");
Copier après la connexion

Avec cet ajustement, la requête devrait s'exécuter avec succès, renvoyant un objet mysqli_result qui peut être utilisé par la fonction mysqli_num_rows() sans déclenchant l'erreur.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal