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:
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:
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 :
Citation:
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:
UPDATE equipes SET score=sc WHERE id_eq=idEq;
Tout fonctionne.
Une idée ?
Merci beaucoup ! ;)