考慮這一計劃Ruby的DBI SELECT_ALL給出了有趣的結果,當你問一個數組
require 'dbi'
handle = DBI.connect('DBI:Mysql:tasks', 'root', 'stupid')
handle.select_all('select * from tasks') do |row|
puts row.inspect
end
rows = handle.select_all('select * from tasks')
puts rows.inspect
到select_all
第一次調用傳遞一個塊,它使用通過表中的行進行迭代,就如同它的猜想。這是迭代的標準Ruby成語,所以它當然是有效的。
第二呼叫應返回相同的數據,但一次全部,封裝在一個數組。數組實際包含的是表格的最後一行!
這是一個錯誤,還是我做錯了什麼?
[紅寶石DBI SELECT_ALL VS執行取/每精加工]的可能重複(http://stackoverflow.com/questions/8972379/ruby-dbi-select-all-vs-execute-fetch-each-finish) –
@Michael絕對是重複的,但我認爲我的版本更清晰,因此更有可能得到回答。 –