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.3][ZEND][PDO] Exécution d'une procédure stockée via PDO et Zend [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Par défaut [PHP 5.3][ZEND][PDO] Exécution d'une procédure stockée via PDO et Zend
    Bonjour, j'essaie d'exécuter une procédure stockée MYSQL qui n'attend qu'un seul paramètre (en IN/OUT). Voici mon code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $db= Zend_Db::factory($config->db);
    $stmt = $db->prepare("CALL <NOM PROCEDURE>(?)");
    $value = '';
    $stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);
    $stmt->execute();
    Dans le code précédent, je me connecte à la base via un fichier de configuration, je prépare mon appel, je charge le paramètre et exécute cette dernière.

    La connexion à la base se fait correctement. Ensuite, j'ai un joli message d'erreur :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine <NOMBASE>.<PROCEDURE> is not a variable or NEW pseudo-variable in BEFORE trigger' in Pdo.php on line 234
    Je sais que cette erreur est courante mais impossible de trouver une réponse...

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Essaye comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $db= Zend_Db::factory($config->db);
    $sql = 'CALL <NOM PROCEDURE>(?)';
    $db->query($sql,4000);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Par défaut
    Mais, de cette façon, comment utiliser les paramètres en IN OUT ?
    Je souhaiterai lui passer un paramètre qui soit modifié en PHP après exécution de la requête. Il me semblait que le bindParam servait à ça ... non ?

  4. #4
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    En fait c'est un bug dans l'API de mysql apparamment.

    Par contre j'ai le bug report, si tu veux participer ou suivre la situation:
    http://bugs.php.net/bug.php?id=43887


  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Par défaut
    Merci, pour l'info. Le problème est plus en moins en stand bye mais je pense que cela va vite revenir !

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Heu....le bug report parle de SQL Serveur(MsSQL) et non pas de MySQL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/11/2009, 16h22
  2. Réponses: 2
    Dernier message: 30/09/2008, 14h49
  3. Erreur d'Exécution d'une procédure stockée
    Par h.Madjid dans le forum SQL
    Réponses: 1
    Dernier message: 05/09/2007, 19h34
  4. Exécution d'une procédure stockée dans Sql
    Par Pascalp dans le forum Access
    Réponses: 4
    Dernier message: 01/09/2006, 11h47
  5. Accès non autorisé à l'exécution d'une procédure stockée
    Par celine33 dans le forum Bases de données
    Réponses: 6
    Dernier message: 11/01/2006, 10h27

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