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
Libérer: 2024-12-08 18:00:34
original
598 Les gens l'ont consulté

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

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

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

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!

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