mysqli_num_rows() s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné
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).
Dans le code fourni, l'erreur se produit sur ligne 22 :
if (mysqli_num_rows($dbc) == 0) {
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).
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!