Forum > PHP > PDO probleme avec la methode query

PDO probleme avec la methode query

ok Le problème posé sur ce sujet a été résolu.
avatar de stc
Membre
# Le 18/03/2009 à 19h42
Salut, j'ai décidé de me mettre a bosser avec ma bdd mysql en utilisant PDO car il faut bien se mettre au gout du jour. Mais y'a un truc que je pige pas si je fais:
($this->dbh et l'instance de la classe PDO)
  1.  
  2. $query="SELECT id_member FROM table_members WHERE login='".$login."'";
  3. $sth=$this->dbh->query($query);
  4. $result=$sth->fetchAll();
  5. $num_rows=count($result);
  6. if($num_rows==0)
  7. {
  8. //.....
  9. puis plus loin:
  10. ....//

puis un 2°(plus loin dans le code):
  1.  
  2. ...//
  3. $query="SELECT id_member FROM table_members WHERE login='".$login."' AND password='".sha1($password)."'";
  4. $sth=$this->dbh->query($query);
  5. $result=$sth->fetchAll();
  6. $num_rows=count($result);
  7. if($num_rows==0)
  8. {
  9. //...

Le 2° num rows tombe toujours a zéro même quand il y a un résultat.
Par contre si je transforme ma 2° portion de code en:
  1.  
  2. $query="SELECT id_member FROM table_members WHERE login='".$login."' AND password='".sha1($password)."'";
  3. $sth_2=$this->dbh->query($query);
  4. $result=$sth_2->fetchAll();
  5. $num_rows=count($result);
  6. if($num_rows==0)
  7. {

La ça fonctionne. D'ailleurs j'avais essayé en désespoir de cause parce que je ne comprenais pas d'où venait le bug ... alors si je change $sth et qu'à la place je prend un nouvel objet $sth_2 ça marche. C'est bien mais j'aimerais avoir une explication rationnelle, faut-il 'libérer' $sth avant de le réutiliser?
merci Tchao
avatar de stc
Membre
# Le 12/05/2009 à 15h51
Je reviens sur ce vieux topic, car en fait depuis, j'ai trouvé la solution. Avant de faire une requête il faut mettre:
  1. $sth=null;

Tchaio
avatar de Tony_
Administrateur
# Le 12/05/2009 à 17h08
Bien joué. ;)
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.