0

Rubyの.sqliteファイルでSQLステートメントを実行しています。WHERE句で変数を使用する必要がありますが、構文がわかりません。nameそれは、変数を使用して結果を保存する方法でもありますか?

total = 0.0
db = SQLite3::Database.open "Test2.sqlite"

for i in 0..@items.length
    name = db.execute "SELECT price FROM Products WHERE product_code = {variable here}"
4

1 に答える 1

1

次のようなバインド変数を使用できます。

name = db.execute "SELECT price FROM Products WHERE product_code = ?", bind_variable_here

http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html#M000078を参照してください

質問が示唆するように、Ruby文字列補間を使用してここで正しい結果を得ることができますが、アプリケーションがSQLインジェクションに対して脆弱になる可能性があるため、これは一般的に悪い考えです。

于 2012-08-23T10:06:45.067 に答える