Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour tout le monde.
N'étant pas un grand connaisseur du ZF (que j'utilise depuis peu), je viens de découvrir un problème qui m'embête un peu.
Je voudrai boucler sur les résultats d'une requête et pour chaque ligne, effectuer une autre requête (tout con me direz vous)... sauf que dans un souci d'optimisation je n'ai pas envie d'utiliser un fetchAll() (trop gourmand s'il y a trop de lignes).
Voila mon code :
$stmt = $db->query("SELECT * FROM table"); while($row = $stmt->fetch()) { print_r($row); // Debug $db->query("SELECT * FROM autre"); }
... et bien ça ne fonctionne pas et je trouve ça hallucinant ! (ça ne passe qu'une seul fois dans ma boucle)
J'ai regardé ce qui pouvait se passer dans Zend... en fait avant chaque query(), il y'a un $this->_stmt->close()
du coup mon fetch() renvoi false à la seconde itération.
Je trouve que ça sent le bug non ?
Avez vous une solution ? (a part faire un fetchAll bien sûr)
Hors ligne
Hello,
Sinon tu clones ton statement initial.
A+
Hors ligne
@yannux : Le deuxième select n'est qu'un exemple, ca pourrait être un update, delete... voire une succession d'autres requêtes... la jointure n'est pas une solution.
@mikaelkael : Certes j'y ai pensé mais ça fait un peu solution à la MacGyver pour palier à un bug du ZF !
Hors ligne