我想执行一行 SQL,如下所示:
conn.Open();
var db = new PetaPoco.Database(conn);
var sql = "INSERT INTO FOO (name) VALUES ( 'foo@bar.com')";
var response = db.Execute(sql);
Run Code Online (Sandbox Code Playgroud)
问题是 PetaPoco 认为 @bar 是一个参数。有没有办法告诉它不要特殊对待任何@?我超级蹩脚的解决方法是将“@”替换为“at”。我带着这种耻辱生活。
“你做错了”™
为了避免 SQL 注入攻击以及连接字符串的其他细微差别,您应该使用参数:
var response = db.Execute("INSERT INTO FOO (name) VALUES (@0)", "foo@bar.com");
Run Code Online (Sandbox Code Playgroud)
错误的方式,但至少有效:
var response = db.Execute("INSERT INTO FOO (name) VALUES ('foo@@bar.com')",
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |