Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Voilà, j'ai codé un script qui fonctionne bien en local. Je l'ai donc balancé sur le serveur, et j'ai une erreur plutôt .. étrange. J'espère que vous saurez m'aider
SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
PDO et PDO-MySQl sont installés et activés.
Cordialement,
Dernière modification par Lio (27-02-2008 23:35:45)
Hors ligne
J'ai eu cette erreur récemment.
C'est un truc bête. Il m'est arriver ça lorsque je faisais une boucle en utilisant les mêmes variables sans les "vidés" proprement. C'est pas trop dur à traduire: Cannot execute queries while other unbuffered queries are active -> Impossible d'exécuter des requetes lorsque d'autres toujours pas "traitées" (i.e. sorti du tampon) sont actives ( en mémoire).
Sinon t'as l'astuce en dessous: you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. A voir comment faut faire.
Hors ligne
Justement, je ne sais pas comment faire
Et j'avais relativement bien compris le message d'erreur, sauf qu'il ne te localise pas l'erreur
Hors ligne
Ca peut peut-être t'aider: http://php.benscom.com/manual/fr/ref.pdo-mysql.php ?
Perso en modifiant mon code le soucis a disparu mais je ne sais plus trop comment j'ai fais :s
Hors ligne
Et appliquer les nouvelles constantes via ZF .. ?
Hors ligne
Et un
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
ne résoud pas le problème ??
Hors ligne
J'le fait où et A quel moment surtout
Hors ligne
Et bien dès la création de la connexion.
Tu dois utiliser une branche 5.1 de PHP non?
Hors ligne
En effet, oui.
Mais la connexion je l'ouvre avec Zend_Db en lui passant mon fichier de config .ini. J'vois donc pas bien comment j'dois dire à Zend_Db d'activer cette constante.
Hors ligne
et bien ......
$db->getConnection()->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
avec $db correspondant à un objet Zend_Db_Adapter_Pdo_Mysql.
Hors ligne
Lio a écrit:
En effet, oui.
Mais la connexion je l'ouvre avec Zend_Db en lui passant mon fichier de config .ini. J'vois donc pas bien comment j'dois dire à Zend_Db d'activer cette constante.
C'est en effet une recette pour éviter le message d'erreur, mais ça ne va que masquer un problème réel dans la logique applicative qui devrait plutôt être traité.
Essaye de créer une log pour localiser la source du problème...
JMR
Hors ligne
Merci Julien.
Jean-Marc, je me doute que c'est pour flouter l'affaire, mais je ne sais pas du tout ce qui ne va pas
Hors ligne
Dans le config.ini :
resources.db.params.driver_options[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true
Hors ligne