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

PHP & Base de données Discussion :

php 5.2.6 et MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 108
    Points
    108
    Par défaut php 5.2.6 et MySQL
    Bonjour,
    Je rencontre un problème avec une procédure mysql et php V 5.2.6, que je n'arrive pas à résoudre.
    Avec php v 5.2.0, je n'ai pas ce problème.
    Avec php v 5.2.6, la procédure s'exécute normalement et j'obtiens les résultats escomptés.
    Par contre, si j'effectue une requête suivante telle que query,
    j'obtiens avec MySQLi le message:
    <Error: 2014 => Commands out of sync; you can't run this command now>
    j'obtiens avec PDO le message: (PDO::MYSQL_ATTR_USE_BUFFERED_QUERY est bien TRUE)
    <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>

    Par contre, si je remplace l'utilisation de ma procédure par une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            SELECT code_postal , commune  
             from codes_postaux_france 
             WHERE  code_postal LIKE p1 
             ORDER BY code_postal, commune;
    Tout se déroule normalement et je peux effectuer une reqête suivante telle que 'query'!

    listing de ma procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       DROP PROCEDURE IF EXISTS get_commune//
        CREATE PROCEDURE get_commune (IN p1 varchar(5))
           BEGIN
             SELECT code_postal , commune  
             from codes_postaux_france 
             WHERE  code_postal LIKE p1 ORDER BY code_postal, commune;
           END//
    Si vous pouviez m'apporter vos lumières? Pierre Laur

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 495
    Points : 6 067
    Points
    6 067
    Par défaut
    J'ai eu plus ou moins le même genre d'erreur. J'ai galéré longtemps avec ça. Pour résoudre le problème j'ai utilisé mysqli_multi_query.
    J'utilise plus PDO parce que j'ai eu quelques problème avec et il y avait pas d'équivalent au multi_query. Apparement cette fonction gère différemment l'appelle de la communication avec Mysql.

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 108
    Points
    108
    Par défaut php 5.2.6 et mysql
    Bonjour,
    Il semblerait qu'après un appel de procédure stockée qui renvoie un jeu de résultats,
    mysql renvoie un supplément d'informations!
    Pour ceux qui rencontreraient le même problême, j'ai trouvé une solution pour MySQLi.
    Il faut appeler la fonction, ci-dessous décrite, pour libérer la mémoire tampon.

    function ClearUnbuffer($Object_MySQLi)
    { while ($ObjectMySQLi->next_result())
    { if (is_object($result = $ObjectMySQLi->store_result()))
    $result->free_result;
    }
    }

    Pour PDO, je n'ai pas trouvé de fonctions qui permettent de faire la même épuration!

Discussions similaires

  1. [MySQL] Script PHP pour Menu déroulant ->BDD MySQL
    Par BENLEMALIN dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 06/12/2006, 16h12
  2. [PDO] usage de PDO - Php 5.1.6 et Mysql 5 ?
    Par rolandcire dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/11/2006, 09h59
  3. lien PHP qui incrémente ma BDD MySQL
    Par evilkopus dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 22/09/2006, 16h28
  4. PHP 4.3.11 et MySQL 5.0.16
    Par mactech dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 19/12/2005, 14h13

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