在Ruby中准备和执行SQLite语句

在Ruby中准备和执行SQLite语句,ruby,sqlite,Ruby,Sqlite,我一直试图在我准备好一些已执行的语句后将其放入。这样做的目的是清理我的数据输入,这是我以前从未做过的。我遵循了这些步骤,但我没有得到我想要的结果 以下是我所拥有的: require 'sqlite3' $db = SQLite3::Database.open "congress_poll_results.db" def rep_pull(state) pull = $db.prepare("SELECT name, location FROM congress_members WHERE

我一直试图在我准备好一些已执行的语句后将其放入。这样做的目的是清理我的数据输入,这是我以前从未做过的。我遵循了这些步骤,但我没有得到我想要的结果

以下是我所拥有的:

require 'sqlite3'

$db = SQLite3::Database.open "congress_poll_results.db"

def rep_pull(state)
  pull = $db.prepare("SELECT name, location FROM congress_members WHERE location = ?")
  pull.bind_param 1, state
  puts pull.execute
end

rep_pull("MN")

=> #<SQLite3::ResultSet:0x2e69e00>
我所期望的是MN中的代表列表,但我只得到SQLite3::ResultSet:0x2e69e00

我错过了什么?非常感谢。

试试这个

def rep_pull(state)
  pull = $db.prepare("SELECT name, location FROM congress_members WHERE location = ?")
  pull.bind_param 1, state
  pull.execute do |row|
     p row
  end
end

我建议不要尝试直接写入任何特定的DBM。相反,通过使用诸如Sequel、DataMapper或Active Record之类的ORM,将您的代码与特定风格的SQL分离。这样,您就可以使用ORM进行编码,然后ORM会为您正在使用的DBM生成适当的查询。如果您需要迁移到另一个DBM,您可以对配置做一些小的调整,如果编写正确,其余的代码将保持不变。我建议使用。看看它的首页,你会发现与SQLite对话是多么容易。