在mysql中使用prepared-statement插入查询?

Fat*_*rri 4 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;
Run Code Online (Sandbox Code Playgroud)

但是当我想运行它时,它有这个错误:

> Procedure execution failed 1136 - Column count doesn't match value
> count at row 1
Run Code Online (Sandbox Code Playgroud)

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

请帮助我.

rai*_*7ow 11

尽管如此,你所采用的方式有点违背准备好的陈述的全部目的.我会改用这个表格:

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