任何人都可以帮我解决这个 JSP 问题吗? 我尝试使用与此类似的代码更新数据库:
所以,我的 Servlet 上有这个:
String QueryCondition = "id = 1";
这将被传递给这个存储过程:
CREATE
DEFINER=`root`@`localhost`
PROCEDURE `storedprocedure_1`(QueryCondition TEXT)
BEGIN
UPDATE users SET name = 'John'
WHERE QueryCondition;
END
我在想这是否可能,因为更新总是失败。
如果这是不可能的,你可以建议我如何做这样的事情
最佳答案
您可以在存储过程中使用它,但需要使用准备好的语句。
示例:
DELIMITER //
CREATE
DEFINER=root@localhost
PROCEDURE storedprocedure_1(QueryCondition TEXT)
BEGIN
SET @query := CONCAT( 'UPDATE users SET name = \'John\' WHERE ',
QueryCondition );
PREPARE stmt FROM @query;
EXECUTE stmt;
DROP PREPARE stmt;
END;
//
DELIMITER ;
关于mysql - 我可以使用字符串作为 WHERE 子句吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22893234/