Page 1 sur 1

[MySQLi] Nombre d'enregistrements retournés

Posté : 29 janv. 2008, 22:50
par dav
Bonjour, j'ai le problème suivant Trying to get property of non-object , pourtant j'ai suivit la syntax indiqué dans le manuel.

voici mon code :

Code : Tout sélectionner

private $mMysqli; function __construct() { $this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE); } private function rowcount($nom, $pass) { //vérifie si l'utilisateur existe en base $result = $this->mMysqli->query('SELECT count(*) as nbres FROM user '. 'WHERE user_name="'.$nom.'" AND user_password="'.$pass.'"'); $row_cnt = $result->num_rows; ... }
Apparement il ne considère pas $result comme un objet. Pourtant query retourne bien un objet d'aprés la doc.
Merci de l'aide

Posté : 29 janv. 2008, 23:45
par Jules Petibidon
Hello,

echo $this->mMySqli->error donne quoi ?

Posté : 30 janv. 2008, 20:29
par Invité
Merci cela m'a effectivement donné une erreur explicite, je peux donc corriger maintenant, ce qui ne va pas.

Posté : 31 janv. 2008, 15:41
par Hubert Roksor
Attention, d'après ton exemple la valeur de num_rows sera toujours 1, puisque ta requête renvoit exactement 1 ligne à cause de la fonction COUNT(*), même si celui-ci est égal à 0.

Retire le COUNT(*) de ta requête et remplace-le par une valeur quelconque si tu veux vérifier l'existence d'un compte utilisateur.

Posté : 31 janv. 2008, 16:34
par Ryle
Le num_rows n'a effectivement pas d'intérêt ici, mais personnellement je trouve plus logique de compter le nombre d'enregistrements trouvés en base et de tester la valeur de "nbres", que de ramener le champ cherché ou tout autre donnée inutile juste pour savoir s'il y a ou pas des enregistrements correspondants :)