2014-01-16 79 views
3

我想打開一個到mysql數據庫的連接並用不同的查詢檢索數據。每次我獲取數據時,是否需要關閉連接,還是有更好的方式來查詢多次並且只在最後關閉連接?如何多次查詢並關閉連接?

目前,我這樣做:

db = dbConnect(MySQL(), user='root', password='1234', dbname='my_db', host='localhost') 

query1=dbSendQuery(db, "select * from table1") 
data1 = fetch(query1, n=10000) 
query2=dbSendQuery(db, "select * from table2") ##ERROR ! 

,我得到的錯誤信息:

錯誤mysqlExecStatement(康涅狄格州,聲明,...): RS-DBI驅動程序:(連接有待決行,在繼續之前關閉resultSet)

現在如果我用清除結果dbClearResult(query 1)我需要重做連接(dbConnect ...)

是否有更好/有效的方式來獲取所有東西,而不是每次打開/關閉?

+1

您需要在執行另一個查詢之前清除結果集。讀取?dbSendQuery,特別是Details部分。 dbGetQuery更適合你想要做的事情,看@Stuples回答 – infominer

回答

8

嘗試dbGetQuery(...)而是採用dbSendQuery(...)fetch()這樣

db = dbConnect(MySQL(), user='root', password='1234', dbname='my_db', host='localhost') 

query1=dbGetQuery(db, "select * from table1") 
query2=dbGetQuery(db, "select * from table1") 

從幫助頁面:

函數「dbGetQuery」做所有這些在一次操作(提交聲明,獲取所有輸出記錄,並清除結果集)。

+0

謝謝!奇蹟般有效 – adhg