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 !