我想执行一行 SQL,如下所示:
conn.Open();
var db = new PetaPoco.Database(conn);
var sql = "INSERT INTO FOO (name) VALUES ( 'foo@bar.com')";
var response = db.Execute(sql);
问题是 PetaPoco 认为 @bar 是一个参数。有没有办法告诉它不要特别对待任何@?我 super 蹩脚的解决方法是用“at”替换“@”。我生活在这种耻辱中。
最佳答案
“你做错了”™
为避免 SQL 注入(inject)攻击和其他连接字符串的细微差别,您应该使用参数:
var response = db.Execute("INSERT INTO FOO (name) VALUES (@0)", "foo@bar.com");
错误的方式,但至少有效:
var response = db.Execute("INSERT INTO FOO (name) VALUES ('foo@@bar.com')",
关于tsql - PetaPoco INSERT with @ in the string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102817/