2014-09-05 84 views
0

我一直在努力執行SQLite的聲明提出了一些語句執行後,我做好準備。這樣做的目的是清理我的數據輸入,這是我以前從未做過的。我遵循的步驟here,但我沒有得到我想要的結果。準備和Ruby的

這是我有:

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 ::結果集:0x2e69e00」的事情。

我在這裏錯過了什麼?非常感謝。

+1

我建議你不要試圖直接寫入任何特定的DBM。相反,通過使用ORM如續集,DataMapper的或活動記錄脫鉤SQL的特殊味道你的代碼。這樣一來,你的代碼使用ORM,然後生成相應的查詢,爲您所使用的DBM。如果你需要遷移到另一個DBM,你可以稍微調整一下你的配置,如果寫得正確,你的代碼的其餘部分保持不變。我建議使用[Sequel](http://sequel.jeremyevans.net)。看看它的開始頁面,你可以看到與SQLite交談有多容易。 – 2014-09-05 22:05:58

回答

1

試試這個

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