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 :

Exécuter une procédure stockée en PHP


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut Exécuter une procédure stockée en PHP
    Bonjour à tous,

    Voici mon problème, je souhaite exécuter la procédure stockée suivante :
    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
     
    USE [DR2_Member]
    GO
     
    DECLARE	@return_value int
     
    EXEC	@return_value = [dbo].[up_CreateMemberAccount]
    		@UID = 0,
    		@ID = N'monId',
    		@PW = N'monMdp',
    		@Gender = 1,
    		@Birthday = N'2012-01-22'
     
    SELECT	'Return Value' = @return_value
     
    GO
    Qui fonctionne très bien en l'exécutant sous SqlServer, et qui renvoie 0

    Le soucis se pose pour l'exécuter du côté de PhP en utilisant odbc :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include("connectMember.php");
    $req= "EXEC dbo.up_CreateMemberAccount(0, 'monId', 'monMdp', 1, '2012-01-22')";
    $res  = odbc_exec($connectMember, $req);

    J'obtiens l'erreur Warning: odbc_exec(): SQL error: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Executing SQL directly; no cursor.

    Merci d'avance.

    Cordialement.
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  2. #2
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Mes jours sur SQL server sont loins derrière moi, mais no cursor est une erreur générique qui ne révèle pas grand chose de la véritable source de ton problème.
    Tu contrôles les variables que tu envoies à ta procédure ?
    J'aurais tendance à penser que le problème vient d'une de tes variable mal échappée, où un guillemet simple qui fout le bazar... enfin, tu vois le truc.
    My daughter, my laptop, my bike and my double-sticks...

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Les variables sont passées correctement, j'ai un doute quand à la syntaxe pour appeler la procédure stockée en sql, EXEC ? CALL ? J'arrive pas à trouver un exemple/tutoriel précis sur les procédures stockées avec php et odbc..
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  4. #4
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par arthur57 Voir le message
    Les variables sont passées correctement, j'ai un doute quand à la syntaxe pour appeler la procédure stockée en sql, EXEC ? CALL ? J'arrive pas à trouver un exemple/tutoriel précis sur les procédures stockées avec php et odbc..
    Si tes variables sont bonnes, mes compétences s'arrêtent là... je suppose que tu as consulté la page correspondante du manuel php ?
    My daughter, my laptop, my bike and my double-sticks...

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Oui toujours, mais au final c'est bien odbc_execute qu'il faut utiliser avec odbc_prepare.

    Lien

    Il me reste un problème de paramètres de variables, mais ca devrais aller, merci quand meme.
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Finalement non, je bloque toujours...
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    Up

    Apparement ca serait ceci pour exécuter une procédure stockée, mais j'ai un problème de nombre de paramètres incorrect que je ne comprends pas.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //préparation
    $stmt = odbc_prepare($connectMember, "CALL dbo.up_CreateMemberAccount(?, ?, ?, ?, ?)");
    //exécution
    $res  = odbc_execute($stmt, array($p1, $p2, $p3, $p4, $p5));
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

Discussions similaires

  1. Exécuter une procédure stockée à partir de vb.net
    Par anihak80 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/01/2008, 12h46
  2. Réponses: 2
    Dernier message: 20/03/2007, 17h00
  3. [Oracle] Exécuter une procédure stockée sans en attendre le résultat
    Par glutock dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/02/2007, 13h54
  4. [PEAR][MDB2] Exécuter une procédure stockée
    Par mikedavem dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 06/01/2007, 09h33
  5. Réponses: 1
    Dernier message: 26/07/2006, 11h23

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