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 :
(J'ai 3 colonnes à remplir, score1, score2 ou score3Unknown column 'score1' in 'field list'
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 !
Partager