如何在SQL语句中使用变量并为变量分配答案

时间:2012-08-23 09:55:50

标签: ruby database sqlite variables

我正在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}"

1 个答案:

答案 0 :(得分: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注入。