Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
j'ai cette erreur qui me bloque:
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
je sais pas si qq un parmi vous a deja rencontré ce probleme? merci de m'aider.
Hors ligne
Tu as fais une requête dont tu n'as pas lus entièrement le résultat.
Soit tu modifies ta requête pour ne retourner que ce dont tu as besoin (c'est le mieux),
Soit tu "consommes" d'une façon ou d'une autre tous les enregistrements que tu as récupérés.
Soit comme c'est indiqué, tu désactives la bufferisation, je jamais essayé ça, mais ce n'est certainement pas bon pour les perfs.
Hors ligne
en fait, en bref, je veux recuperer tous les offres d'une table offre groupés par client dont je dois afficher le nom: voici les requetes que j'ai lancé:
$clients = $this->db1->query('SELECT DISTINCT c_id FROM c_offer')->fetchAll();
$i=0;
foreach ($clients as $cli){
$allOffers[$i]['client'] = $this->db->query('SELECT c_id,name FROM c_subscriber where c_id=?',(int)$cli['c_id'])->fetchAll();
$allOffers[$i]['offres'] = $this->db->query('SELECT * FROM c_offer WHERE c_id = ?',(int)$cli['c_id'])->fetchAll();
$i++;
}
Hors ligne
en plusde cela les requetes que je lance(insert,update et delete) ne marchent pas;
l'erreur cette fois est
Call to a member function delete() on a non-object in C:\wamp\www\maghrebjob\library\Zend\Db\Table\Abstract.php on line 854
je crois que la connection à la base de donnees n'existe plus!!
svp aidez moi...
Hors ligne
h_ismaili a écrit:
en fait, en bref, je veux recuperer tous les offres d'une table offre groupés par client dont je dois afficher le nom: voici les requetes que j'ai lancé:
Code:
$clients = $this->db1->query('SELECT DISTINCT c_id FROM c_offer')->fetchAll(); $i=0; foreach ($clients as $cli){ $allOffers[$i]['client'] = $this->db->query('SELECT c_id,name FROM c_subscriber where c_id=?',(int)$cli['c_id'])->fetchAll(); $allOffers[$i]['offres'] = $this->db->query('SELECT * FROM c_offer WHERE c_id = ?',(int)$cli['c_id'])->fetchAll(); $i++; }
* mets ton code entre balise \[code\] et \[/code\], ton source n'en sera que plus lisible
* tu as 2 connexions à une db ($db1 et $db), est ce normal ?
* renseigne toi sur MySQL, tu dois surement pouvoir gérer ca en 1 requete (HAVING / GROUP BY / etc.)
* ne fait jamais de SELECT *, ca bouffe des ressources pour rien si jamais tu n'utilises pas tout
Concernant ton autre soucis .
* on voit pas tes insert, update, delete
* vérifie que tes objets sont bien de type Zend_Db_Table de mémoire car le message que tu nous donne indique que tu appliques la méthode delete() à une variable qui n'est pas un objet
* Si tu n'as pas killer la connexion à la DB, elle a pas de raison de ne plus être
* Si tu as des doutes sur son existance, vérifie qu'elle est toujours présente
Je crois que c'est a peut près tout avec les infos que l'on a
Hors ligne
Pages: 1