我正在执行这样的PetaPoco更新声明:
db.Execute("UPDATE Content SET Html = '@0', PlainText = '@1' WHERE ContentId = @2", newHtml, newText, c.EmailContentId);
MySQL数据库只是将参数名称作为文字粘贴到字段中,即Html字段现在包含'@ 0'(不带引号)。
我已经运行了这样的查询一千次,我没有看到这一行中的错误。 我已经介绍了PetaPoco代码并创建了MySqlCommand,它有一个MySqlParameterCollection,它有3个参数,并且它们都有正确的值。
知道我哪里出错了?
答案 0 :(得分:3)
如果您使用预先准备好的陈述,则必须省略占位符周围的单引号。使用
db.Execute("UPDATE Content SET Html = @0, PlainText = @1 WHERE ContentId = @2", newHtml, newText, c.EmailContentId);
代替。