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

SQL Procédural MySQL Discussion :

Procédure stockée avec colonne en paramètre


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 27
    Points : 10
    Points
    10
    Par défaut Procédure stockée avec colonne en paramètre
    Hello,

    J'ai une erreur MySQL lorsque j'essaye d'exécuter une procédure stockée avec un nom de colonne en paramètre.

    Je récupère les 3 paramètres (dont "score" qui est un nom de colonne) dans un formulaire PHP.

    Voici le code de ma procédure :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DELIMITER $$
     
    DROP PROCEDURE IF EXISTS `footus`.`Add_Score` $$
    CREATE PROCEDURE `footus`.`Add_Score` (IN score char(6), IN sc int(3), IN idEq int(11))
    BEGIN
    UPDATE equipes SET score=sc WHERE id_eq=idEq;
    END $$
     
    DELIMITER ;

    J'ai également tenté de cette façon :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DELIMITER $$
     
    DROP PROCEDURE IF EXISTS `footus`.`Add_Score` $$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `Add_Score`(IN score char(6), IN sc int(3), IN idEq int(11))
    BEGIN
    SET @SQL = CONCAT("UPDATE equipes SET ",score,"=",sc," WHERE id_eq=",idEq,";");
     
    PREPARE stmt1 FROM @SQL;
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
     
    END $$
     
    DELIMITER ;

    Et le résultat est le même :
    Unknown column 'score1' in 'field list'
    (J'ai 3 colonnes à remplir, score1, score2 ou score3

    Je précise que si j'utilise la requête que je place dans la procédure, à savoir

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE equipes SET score=sc WHERE id_eq=idEq;

    Tout fonctionne.

    Une idée ?

    Merci beaucoup !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    Erreur à la con quand tu nous tiens, forcément, si je déclare le nom de la colonne en "char" et que dans le code PHP je ne lui spécifie pas que c'en est une en appelant la procédure, ça ne risque pas de fonctionné

    Résolu donc

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

Discussions similaires

  1. [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
  2. Procédure stockée avec deux paramètres ADO/ORACLE
    Par zanifu dans le forum Bases de données
    Réponses: 7
    Dernier message: 01/03/2006, 09h13
  3. Procédure stocké avec un ORDER BY paramétrable
    Par Erakis dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 10/11/2005, 14h12
  4. Procédure stockée avec serveur lié et paramètres
    Par AITOZ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/10/2005, 17h51

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