【问题标题】:How to query multiple times and close the connection at the end?如何多次查询,最后关闭连接?
【发布时间】:2014-01-16 16:15:42
【问题描述】:

我想打开一个到 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...)

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

【问题讨论】:

  • 您需要在执行另一个查询之前清除结果集。阅读 ?dbSendQuery,特别是详细信息部分。 dbGetQuery 更适合您正在尝试做的事情,请看@Stuples answer

标签: mysql r database-connection


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-11
    • 2019-08-23
    • 1970-01-01
    • 2020-07-13
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多