使用 Python 连接器处理 MySQL 数据库时,可能会遇到错误“找到未读结果” ”。此问题通常与无缓冲游标相关,并且在单个连接中执行多个查询时可能会发生。
在提供的代码中,错误可能是由于以下行而发生的:
leg_no = cursor.fetchone()[0]
此行仅从查询结果中获取一行,而其余结果未处理。使用同一游标的后续查询将失败,并出现“发现未读结果”错误。
解决方案:
要解决此问题,请设置游标的 buffered 属性创建时设置为 True。这将强制连接器在执行任何后续查询之前缓冲整个结果集。
cursor = cnx.cursor(buffered=True)
此外,建议在执行任何后续查询之前使用 fetchall() 显式从游标中获取所有剩余结果。这可以通过以下代码完成:
try: cursor.fetchall() except mysql.connector.errors.InterfaceError as ie: if ie.msg == 'No result set to fetch from.': pass else: raise
通过将游标设置为缓冲并显式获取所有结果,可以避免“找到未读结果”错误。
以上是如何解决 Python 中的 MySQL 连接器'发现未读结果”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!