comprendre le probleme fetch()

benW94
Invité n'ayant pas de compte PHPfrance

26 févr. 2015, 11:40

Salut, je viens d'avoir un petit problème avec la fonction fetch() que j'ai résolu par moi-même mais je n'ai pas compris pourquoi le problème a été résolu.

Voila mon ancien code : (la connexion à la base de données et la variable $region ont été faite et initialisée juste avant)
$req = $bdd->prepare('SELECT * FROM localisation WHERE region = ' . $region . ' ORDER BY id_logement DESC');

while($reponse = $req->fetch())
...
La il y avait une erreur "Call to a member function fetch() on boolean".
J'ai résolu le problème en écrivant la requete sql en préparée comme ceci :
$req = $bdd->prepare('SELECT * FROM localisation WHERE region = ? ORDER BY id_logement DESC');
$req->execute(array($region));

while($reponse = $req->fetch())
...
Voila je voudrais juste comprendre l'erreur, est-ce que php lit un booléen dans le premier cas? comment est-ce qu'il comprend le deuxieme cas par rapport au premier? ou est-ce qu'il y avait juste une erreur dans le sql dans le premier cas?..

Merci d'avance :)

Mammouth du PHP | 688 Messages

26 févr. 2015, 13:31

pour pouvoir parcourir les résultats d'une requête, il faut au préalable l'exécuter, ce qui n'a pas été fait dans le 1er cas.

benW94
Invité n'ayant pas de compte PHPfrance

26 févr. 2015, 14:15

okay thx