我有一个输入参数错误,但我不知道为什么:
0 14:31:47 call UpdateComment(66,1,2,"NOWYTitle","NOWYContent") Error Code: 1054. Unknown column 'NOWYTitle' in 'field list'
调用过程:
call UpdateComment(66,1,2,"NOWYTitle","NOWYContent");
我的程序:
DELIMITER $$
DROP PROCEDURE IF EXISTS UpdateComment $$
CREATE PROCEDURE `UpdateComment`(UserId INT,/*Crc32 int(11) unsigned,*/ArticleId int(11),CommentsId int(11), newTitle varchar(255), newContent varchar(255))
BEGIN
DECLARE helpUserTable varchar(255);
set helpUserTable = CONCAT("User",UserId);
set @score1 =CONCAT("UPDATE `",helpUserTable,"` SET Title = ",newTitle," WHERE CommentsId = ",CommentsId," AND ArticleId = ",ArticleId);
PREPARE stmt FROM @score1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
set @score2 =CONCAT("UPDATE `",helpUserTable,"` SET Content = ",newContent," WHERE CommentsId = ",CommentsId," AND ArticleId = ",ArticleId);
PREPARE stmt FROM @score2;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
最佳答案
首先,您需要在命令中的文本值周围添加引号,其次您的 SQL 语句可以合并为一个语句(它们共享相同的 where 子句):
试试这个:
set @score1 = CONCAT("UPDATE `", helpUserTable, "` SET Title = '", newTitle,
"', Content = '", newContent, "' WHERE CommentsId = ",
CommentsId, " AND ArticleId = ", ArticleId);
并完全删除@score2
关于mysql - 更新程序 输入参数中的列不正确/未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037755/