【发布时间】:2012-08-21 14:31:12
【问题描述】:
我正在使用 sqlite3 并尝试将绑定变量传递到命令行应用程序中的 SQL 语句中,我正在尝试将其作为 http://www.pangloss.com/seidel/shake_rule.html 的复制。这是用于添加/删除数据库的管理实用程序。我只是想了解如何将 SQL 与 Ruby 结合使用,并为我目前正在玩的游戏的 DM 构建一个纸笔 rpg 实用程序集。
db.execute ("INSERT INTO insults (position, string) VALUES (?, ?);", cmd_args[1].to_i, cmd_args[2])
db.execute("SELECT * FROM insults WHERE position = ? AND string = ?;", cmd_args[1].to_i, cmd_args[2]) do |output|
puts output
end
第一个查询导致语法错误“unexpected ',', expecting ')'”和更多错误,但当我注释掉这一行时它们消失了。
后一个查询似乎没有根本的不同,但是当我注释掉前一个时它不会导致错误。当我手动设置 cmd_args 数组值时,它仍然没有输出任何内容。数据库中有一些测试元素,即“1|test”不输出,但没有抛出错误。
【问题讨论】:
-
你是否在命令行中传递了三个参数?
-
我想它实际上是一个命名错误的变量。这是一个拆分字符串。第二个问题实际上是第一个问题的一部分。不过还是谢谢。
标签: sql ruby sqlite bind sqlite3-ruby