Maison >base de données >tutoriel mysql >Pourquoi `mysqli_num_rows()` renvoie « s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné » ?

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

DDD
DDDoriginal
2024-12-08 18:00:34634parcourir

Why does `mysqli_num_rows()` return

mysqli_num_rows() s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné

Analyse des erreurs

Le message d'erreur "mysqli_num_rows( ) s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné" se produit lorsque vous essayez d'utiliser la fonction mysqli_num_rows() sur une valeur booléenne au lieu d'un jeu de résultats MySQL valide (mysqli_result).

Source de l'erreur

Dans le code fourni, l'erreur se produit sur ligne 22 :

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

Débogage du problème

La variable $dbc est affectée sur ligne 13 en utilisant la fonction mysqli_query(). Cependant, l'examen de la requête révèle une erreur :

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

La requête tente de joindre les tables "users" et "profile" à l'aide d'un "INNER JOIN", mais il n'y a pas de condition de jointure entre "profile" et n'importe quel autre tableau. En conséquence, la requête renvoie false (boolean false).

Résolution

Pour résoudre l'erreur, la requête doit être corrigée pour inclure une condition de jointure appropriée. Voici la 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 cette correction, la requête renverra un jeu de résultats MySQL valide, permettant à mysqli_num_rows() de fonctionner correctement.

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