mysql - 在 mysql 中使用准备语句插入查询?

标签 mysql stored-procedures prepared-statement

我有一个这样的存储过程:

SET @query = CONCAT('insert into tblcommodity (id , idname , count)values (',p1, p2,p3,')');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

但是当我想运行它的时候,却出现了这个错误:

> Procedure execution failed 1136 - Column count doesn't match value
> count at row 1

另一件事是,当我运行插入代码时,它会运行!

请帮助我。

最佳答案

恕我直言,您这样做的方式有点违背了准备好的陈述的全部目的。我会改用这种形式:

SET @query = 'INSERT INTO tblcommodity (id, idname, count) VALUES (?, ?, ?)';
PREPARE stmt FROM @query;
EXECUTE stmt USING @p1, @p2, @p3;

关于mysql - 在 mysql 中使用准备语句插入查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003189/

相关文章:

c# - 在 C# 中更新 NHibernate 3.3 中的子级

mysql - 如何使用mysql获取用户的顶层分层数据?

Java - Oracle - DB Insert - Timestamp to Date 列

mysql - 如何从mysql中的字符串创建int列表?

php - 如果已存在则插入或更新 - 准备好的语句

java - 通过 JDBCTemplate 使用准备好的语句

mysql - Node mysql检查和更新foreach循环

java - 如果多个用户输入为空则返回 SQL 搜索

php - UTF-8贯穿始终

mysql - 用于组合多个查询输出的存储过程