IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

Cannot execute queries while other unbuffered queries are active.


Sujet :

Zend_Db PHP

  1. #1
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut Cannot execute queries while other unbuffered queries are active.
    Salut à tous,

    Comme dans le titre de ce post, j'ai un soucis en exécutant plusieurs procédures stockées et/ou vues mysql dans un controlleur.

    J'ai cherché sur le net, et la réponse est sans doute celle-ci, mais je n'arrive pas à la mettre en place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
    Le controlleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            $dbAdapter = Zend_Db_Table::getDefaultAdapter();        
            $r= $dbAdapter->query("CALL proc_user_get_annonce(".$id.")");
            $row =$r->fetchAll();      
     
            $rows= $dbAdapter->query("SELECT * FROM view_mandataire");        
            $mandataires= $rows->fetchAll();
    Comme je passe par un fichier de config, j'ai essayé plusieurs possibilités, mais rien n'y fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        resources.multidb.front_db.default  = true
        resources.multidb.front_db.params.driver_options[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true
     
        resources.db.isDefaultTableAdapter = true
        resources.db.params.driver_options[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true
    Une idée ?

    Merci
    Fabrice

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Points : 242
    Points
    242
    Par défaut
    Bonjour,

    tu peux tester ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $dbAdapter->prepare('CALL proc_user_get_annonce(?)', array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
    $dbAdapter->bindValue(1, $id);
    $dbAdapter->execute();

  3. #3
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut
    Salut,

    Merci, mais j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to undefined method Zend_Db_Adapter_Pdo_Mysql::bindValue()

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Points : 242
    Points
    242
    Par défaut
    désolé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $r = $dbAdapter->prepare('CALL proc_user_get_annonce(?)', array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
    $r->bindValue(1, $id);
    $r->execute();

  5. #5
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut
    La requete marche , seule, mais pas si je fait d'autres requêtes (même en passant par un modèle d'ailleurs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            $r = $dbAdapter->prepare('CALL proc_user_get_annonce(?)', array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
            $r->bindValue(1, $id);
            $r->execute();
            $row =$r->fetchAll();      
     
           // $r= $dbAdapter->query("CALL proc_user_get_annonce(".$id.")");
           // $row =$r->fetchAll();      
     
            //$rows= $dbAdapter->query("SELECT * FROM view_mandataire");  
            //$rows =$r->fetchAll();         
     
            $modelAnnonces = new Backofficeuser_Model_Annonces_Annonces;
            $mandataires= $modelAnnonces->getMandataires();

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/02/2014, 11h38
  2. Réponses: 0
    Dernier message: 06/01/2010, 22h05
  3. Réponses: 3
    Dernier message: 05/08/2008, 15h24
  4. [EJBQL] An exception occured while creating a query in EntityManager
    Par Asmod_D dans le forum Java EE
    Réponses: 3
    Dernier message: 30/01/2008, 10h39
  5. Réponses: 13
    Dernier message: 19/07/2006, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo