ruby 1.9.x で sqlite3 gem を使用した次のステートメントの違いについて、誰かが明確に説明しているかどうか疑問に思っています。
@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
データベースレベルでの違いが正しく機能するのを妨げていることを誰かが知っていますか?