2010-11-20 5 views
0

J'écris du code pour un utilisateur de mettre à jour son mot de passe sur un système de compte d'utilisateur.La requête MySQL renvoie un non-objet?

C'est la partie du code que je me réfère à:

$checker = mysqli_query($db, "SELECT userid FROM tbl_user WHERE userpassword = '".md5($current)."'"); 
//echo "SELECT userid FROM tbl_user WHERE userpassword = '".md5($current)."'"; 
if ($checker == $_SESSION['exp_user']['userid']) {$check = true;} else {$check = false;} 

Pour une raison quelconque, $checker est retourne un tableau d'objets plutôt qu'un objet lui-même.

Faire un print_r($checker) produit ceci:

mysqli_result Object ([current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0) 

Toutes les idées sur ce que je devrais faire?

Répondre

1

Il ne retourne pas un "tableau d'objets", juste un objet. La classe de l'objet est mysqli_result (comme prévu) et il a obtenu des champs publics comme num_rows comme vu sur the manual of the MySQLi_Result class. Si vous voulez lire les données du jeu de résultats, vous devez toujours utiliser des méthodes de récupération comme mysqli_result::fetch_assoc(), même si le jeu de résultats contient uniquement une ligne et une colonne.

Questions connexes