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 :

Procédures stockées avec paramètres [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien de Maintenance
    Inscrit en
    Juin 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien de Maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Procédures stockées avec paramètres
    Bonjour,

    J'essaie de faire (pour une 1ère fois) une procédure stockée, avec les paramètres elle ne fonctionnent pas mais en remplaçant les paramètres par les valeurs elle fonctionne :

    DELIMITER $$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `UPDATE`(IN `table1` VARCHAR(50) CHARSET ascii, IN `table2` VARCHAR(50))
    UPDATE table1 INNER JOIN table2 SET
    table1.NUMERO_SERIE = table2.NUMERO_SERIE
    WHERE table1.MR = table2.MR$$
    DELIMITER ;

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    De mémoire il me semble qu'on ne peut pas utiliser les paramètres tels quels. Essaie d'affecter les paramètres à des variables locales à la procédure (les noms commencent par @).
    Question. Ca fonctionne un INNER JOIN sans clause ON ?
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien de Maintenance
    Inscrit en
    Juin 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien de Maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Nom : Capture.PNG
Affichages : 119
Taille : 12,2 Ko
    Nom : Capture1.PNG
Affichages : 130
Taille : 141,6 Ko

    Sans le savoir, phpMyAdmin l'a fait en appelant la procédure
    Mais il n'aime pas le @ dans la procédure elle même
    Pour la clause ON, oui je suis étonné moi même que ça fonctionne

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je pensais à quelque chose comme ça :

    set @tab1 = table1;
    set @tab2 = table2;
    UPDATE @tab1 t1 INNER JOIN @tab2 t2 SET
    t1.NUMERO_SERIE = t2.NUMERO_SERIE
    WHERE t1.MR = t2.MR$$
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien de Maintenance
    Inscrit en
    Juin 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien de Maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    J'ai esaayé sur la 2ème image, juste sur le première occurrence après UPDATE
    Je viens d'essayé aussi de mettre @ dans le nom des paramètres, ça ne marche pas non plus
    Truc de fou je viens de réessayer avec les noms de tables en statique et ça fonctionne :
    Nom : Capture.PNG
Affichages : 133
Taille : 71,1 Ko

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Quand on ne peut pas passer par la porte essayons la fenêtre !

    Le but est de créer une requête dynamique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    DELIMITER $$
    DROP PROCEDURE IF EXISTS TOTO$$
    CREATE PROCEDURE TOTO (IN tab1 varchar(20))
    BEGIN
     
      SET @mon_query = concat('select * from ', tab1);
     
      PREPARE statement FROM @mon_query;
      EXECUTE statement;
    END$$
    DELIMITER ;
    CALL TOTO('tab_toto') me donne

    Nom : 170217-002.JPG
Affichages : 109
Taille : 22,7 Ko
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien de Maintenance
    Inscrit en
    Juin 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien de Maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    J'adore l'expression, oui ça passe par la fenêtre !

    Nom : Capture.PNG
Affichages : 108
Taille : 12,3 Ko
    Le champ ID_OPERATION_APPLIQUEE est NULL

    Nom : Capture1.PNG
Affichages : 126
Taille : 54,4 Ko
    Execution de la procédure

    Nom : Capture2.PNG
Affichages : 112
Taille : 18,4 Ko
    Le champ est renseigné est beaucoup plus rapide qu'une requête

    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/05/2013, 14h29
  2. Réponses: 1
    Dernier message: 23/08/2010, 12h13
  3. Lancement d'une procédure stockée avec paramètres
    Par ptitenana_vtq dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 08/06/2010, 15h16
  4. SQL - Procédure stockée avec paramètres
    Par jacquesprogram dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/03/2009, 11h17
  5. [SQL2K5] Procédure stockée avec paramètre à valeurs multiple
    Par Jinroh77 dans le forum Développement
    Réponses: 1
    Dernier message: 16/05/2008, 17h31

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