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 :

Appel de procédures stockées via Php


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Appel de procédures stockées via Php
    bonjour,

    Je cherche à appeler une procédure stockée dans ma base de données sur une page web en utilisant le code suivant : j'appelle ma procédure avec CALL, celle ci crée une table temporaire que j'essaye de retourner avec un SELECT, mais cela ne retourne rien, comme si ma table temporaire Map n'existait pas, alors que si je fais tourner la procédure dans phpmyadmin, la table existe bien et retourne mes valeurs.

    Comment réussir à récupérer ces valeurs dans mon 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
     
     
     
          $stmt =$bdd->prepare("CALL dijtrajet($allu,$alli)");
          $stmt->setFetchMode(PDO::FETCH_ASSOC);
          $stmt->execute();
     
          $stmt =$bdd->prepare("SELECT * FROM Map");
          $stmt->bindParam(3, $return_value, PDO::PARAM_STR, 4000);
          $stmt->execute();
          $tab=$result->fetchAll();
     
        foreach ($tab as $row){
            echo  $row['Nom_arrêt_départ'];
            echo  $row['Nom_arrêt_arriver'];
     
            //echo  $row['Nom_arrêt_arriver'];
          //  echo  $row['Valeur'];
        }
    merci

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    quelle SGBD utilisez-vous ?

    d'abord il vaut mieux utiliser une requête préparée pour passer les arguments à la procédure :
    https://www.php.net/manual/fr/pdo.pr...statements.php

    ensuite, est ce que la procédure est bien lancée sur le serveur ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'utilise mySQL avec Wamp,

    La requête pour la procedure est préparée, je ne comprends pas bien, les variables que je saisi sont déja issues de requêtes preparées...

    Ma procédure s'exécute bien sur le serveur, le soucis est que je n'arrive pas à récupérer ses résultats avec php,

    Au debut la procédure s'executait dans une table temporaire, je supposais que l'erreur venait de là puisque la table est détruite à la fin de la procédure mais finalement, même en créant une table dédiée, je ne peux pas récupérer les resultats.

    PS : la procédure que j'utilise exécute une autte procédure pour fonctionner, j'ai vu qu'il fallait sans doute préparer cette autre procédure, mais je n'ai pas plus de résultats...

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    Citation Envoyé par Fierelis Voir le message
    La requête pour la procedure est préparée, je ne comprends pas bien, les variables que je saisi sont déja issues de requêtes preparées...
    avec "CALL dijtrajet($allu,$alli)" vous construisez la requête dans une chaine de caractères en PHP.
    pour bien sécuriser l'utilisation de paramètres, faites comme l'exemple qui esr sur la page que je vous ai indiquée.

    je viens de voir un souci dans votre code, à la ligne 9 vous ajoutez un paramètres mais il n'y a pas de paramètre dans la requête "select".
    est ce que "Map" est le table temporaire créée par la procédure stockée ?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Oui, Map est bien ma table temporaire, j'ai oublié d'enlever la valeur de la ligne 9 que j'avais utilisée pour un essai, je vais essayer en appelant les paramètres comme sur le guide

  6. #6
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Et en virant tous les accents de tes noms de table et colonnes qu'est ce que ça donne?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/10/2014, 19h40
  2. Réponses: 2
    Dernier message: 28/07/2014, 09h04
  3. Appel procédure stockée via script
    Par christelle_s dans le forum QlikView
    Réponses: 2
    Dernier message: 04/09/2012, 13h40
  4. [PDO] [PHP 5.3][ZEND][PDO] Exécution d'une procédure stockée via PDO et Zend
    Par daav14 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/10/2010, 20h56
  5. Appel procédure stockée via PHP
    Par yan44 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 26/07/2010, 10h15

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