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 :

Les procédure stockées [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut Les procédure stockées
    bonjour
    j'essaie d'appeler une procédure stockée avec un paramètre soit en entrée ou en sortie, n'importe.
    J'ai réussi à appeler une procédure stockée qui ne copie pas de valeur mais quand il y a paramètre je n'ai pas le lien entre variable PHP et Mysql
    Voici mes codes :

    Pour un paramètre en entrée :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE PROCEDURE `bdtest`.`paraEntree` ( nb varchar(20))
    BEGIN
     
    insert into tabletest values(null,nb);
     
    END
    Ou pour sortie :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE PROCEDURE `bdtest`.`paraSortie` (out nb int)
    BEGIN
     
    select max(id) into nb from tableTest;
     
    END

    Et le code php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    try {
       $dbh = new PDO('mysql:host=localhost;dbname=bdtest', 'utBase', 'hwQTMMvCEa35aeHF');
     
    // pour entrée
    $stmt = $dbh->prepare("CALL paraEntree(?)");
    $stmt->bindParam(1, $nb, PDO::PARAM_STR,20);
    $value = 'rrr';
    $stmt->execute();
     
    // pour sortie
    $stmt = $dbh->prepare("CALL paraSortie(?)");
    $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 20);
    // Appel de la procédure stockée
    $stmt->execute();
    print "La procédure a retourné : $return_value\n";
     
       $dbh = null;
    } 
    catch (PDOException $e) {
    echo $e->errorInfo() ;
    }
    ?>
    Il y a donc problème dans le passage de paramètre car sans paramètre c'est ok et les tests des procédures direct sur mysql sont ok !

    help
    merci

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    Citation Envoyé par sebpern Voir le message
    pbl ds passage parametre car sans para c ok et test des proc direct sur mysql ok !
    je n'ai pas compris, quel est ton problème ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut explication
    alors, je souhaite appeler une procedure stockée, crée sous MYSQL5, depuis le PHP.

    avec une procedure stockée sans parametre : pas de soucis

    mais lorsque j'ai une procedure stockée avec des paramètres ( entrée ou sortie ) cela ne marche pas : en effet j'appelle ma procedure stockée avec le parametre en sortie et ds mon PHP je ne recupère pas les valeurs que la procédure stockée est censé copier. Cependant je n'ai pas d'erreur.

    voila mon soucis
    et je ne comprend pas pourquoi

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    ll y a un bug avec l'API MySQL utilisé par PDO, tu dois passer par une variable MySQL pour récupérer la valeur, regarde là :
    http://bugs.php.net/bug.php?id=35935

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut merci bcp et pour un parametre en entree
    et pour envoyer une valeur à un paramètre en entrée je dois faire comment ?
    encore merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut c ok
    merci encore pour ton aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/08/2007, 21h11
  2. comment gerer les procédures stockées
    Par fadex dans le forum JDBC
    Réponses: 3
    Dernier message: 01/05/2006, 13h54
  3. [Mapping O/R] - Pour ou contre les procédures stockées
    Par spidetra dans le forum Persistance des données
    Réponses: 8
    Dernier message: 03/04/2006, 10h01
  4. Sauvegarder les procédures stockées
    Par Misdrhaal dans le forum Oracle
    Réponses: 2
    Dernier message: 27/03/2006, 14h12
  5. Informations sur les procédures stockées
    Par jfphan dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/01/2004, 14h30

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