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 回答