首页 >数据库 >mysql教程 >为什么我的 Python MySQL 连接器在使用 `fetchone()` 时抛出'未读结果找到”错误?

为什么我的 Python MySQL 连接器在使用 `fetchone()` 时抛出'未读结果找到”错误?

Patricia Arquette
Patricia Arquette原创
2024-11-29 19:30:16114浏览

Why Does My Python MySQL Connector Throw an

Python MySQL 连接器:使用 Fetchone 时“发现未读结果”

使用 Python 连接器将解析的 JSON 数据插入 MySQL 数据库时,出现错误:“发现未读结果。”此错误与特定的代码段相关。

在代码片段中,使用cursor.execute 方法执行一系列查询,然后调用cursor.fetchone 以从结果集。但是,当将此代码添加到较大的程序中时,使用同一游标的后续查询会失败,并出现“发现未读结果”错误。

该错误表明先前的查询存在未处理的结果。要解决此问题,建议使用cursor.fetchall 方法耗尽每个查询的结果。然而,尝试在 try-except 块中执行此操作以处理 mysql.connector.errors.InterfaceError 已被证明是不成功的。

导致错误的具体代码部分如下:

cursor.execute(query,(travel_mode, Orig_lat, Orig_lng, Dest_lat, Dest_lng, time_stamp))
leg_no = cursor.fetchone()[0]
try:
    cursor.fetchall()
except mysql.connector.errors.InterfaceError as ie:
    if ie.msg == 'No result set to fetch from.':
        pass
    else:
        raise
cursor.execute(query,(leg_travel_mode, leg_Orig_lat, leg_Orig_lng, leg_Dest_lat, leg_Dest_lng, time_stamp))

要解决该问题,需要在创建游标时将 buffered 参数设置为 True。这可确保在执行任何后续查询之前,将查询的所有结果提取到缓冲区中。

cursor = cnx.cursor(buffered=True)

将缓冲参数设置为 True 时,不再遇到“未读结果找到”错误。

以上是为什么我的 Python MySQL 连接器在使用 `fetchone()` 时抛出'未读结果找到”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn