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
DDDoriginal
2024-11-28 00:08:12684parcourir

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

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!

Déclaration:
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