如何多次查询并在结束时关闭连接?

时间:2014-01-16 16:15:42

标签: mysql r database-connection

我想打开与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 ...)

是否有更好/更有效的方法来首先获取所有内容而不是每次都打开/关闭?

1 个答案:

答案 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'在一个操作中完成所有这些操作(提交语句,获取所有输出记录,并清除结果集)。