我想知道是否有人对使用 sqlite3 gem 和 ruby 1.9.x 的以下语句之间的区别有任何澄清:
@db.execute("INSERT INTO table(a,b,c) VALUES (?,?,?)",
some_int, other_int, some_string)
和
@db.execute("INSERT INTO table(a,b,c) VALUES (#{some_int},"+
+"#{some_int}, #{some_string})")
我的问题是:当我使用第一种插入方法时,我无法使用以下语句查询“c”列:
SELECT * FROM table WHERE c='some magic value'
我可以使用这个:
"SELECT * FROM table WHERE c=?", "some magic value"
但我真正想要使用的是
"SELECT * FROM table WHERE c IN ('#{options.join("','")}')"
这不适用于插入的类型。
有谁知道在数据库级别阻止IN
正常工作的区别是什么?