我想打开与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(conn,statement,...)出错: RS-DBI驱动程序:(与挂起的行连接,在继续之前关闭resultSet)
现在,如果我用 dbClearResult(query1)清除结果,我需要重做连接(dbConnect ...)
是否有更好/更有效的方法来首先获取所有内容而不是每次都打开/关闭?
答案 0 :(得分: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'在一个操作中完成所有这些操作(提交语句,获取所有输出记录,并清除结果集)。