Maison >base de données >tutoriel mysql >Pourquoi `mysqli_num_rows()` renvoie-t-il un booléen au lieu d'un ensemble de résultats ?
PHP et MySQL : résolution de l'erreur "mysqli_num_rows() s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné"
L'erreur "mysqli_num_rows() s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné" indique que l'entrée fournie au La fonction mysqli_num_rows() n'est pas un jeu de résultats valide. Cette erreur se produit souvent lorsque l'argument d'entrée n'est pas le résultat d'une exécution réussie de la requête.
Dans ce cas précis, l'erreur se produit dans la ligne suivante du code PHP :
if (mysqli_num_rows($dbc) == 0) {
Ici, la variable $dbc est utilisée comme entrée de mysqli_num_rows(), mais elle renvoie false car la requête exécutée sur $dbc contient un 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");
L'erreur dans la requête est le mot-clé JOIN manquant entre les utilisateurs et les tables de profil :
SELECT users.*, profile.* --You do not join with profile anywhere. FROM users INNER JOIN contact_info ON contact_info.user_id = users.user_id WHERE users.user_id=3");
Pour résoudre le problème, vous devez modifier la requête comme suit :
$dbc = mysqli_query($mysqli,"SELECT users.*, profile.* FROM users INNER JOIN profile ON contact_info.user_id = users.user_id WHERE users.user_id=3");
En corrigeant la requête, la fonction mysqli_num_rows() recevra désormais un jeu de résultats valide et pourra déterminer si le nombre de lignes dans le résultat est zéro.
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!