使用 Python 从 MySQL 存储过程检索结果
尽管通过 Python 成功调用 MySQL 存储过程,但尝试时会发生错误使用cursor.fetchall() 获取结果。此错误消息“mysql.connector.errors.InterfaceError: No result set to fetch from”表示预期结果集不可用。
要解决此问题,请考虑使用cursor.stored_results()方法代替。此方法从存储过程中检索任何可用的结果集。在这种情况下,应该只有一个结果集,可以将其分配给变量并随后迭代以获得所需的数据。
这里是一个修改后的代码片段,演示了cursor.stored_results( ):
import mysql.connector cnx = mysql.connector.connect(user='root', host='127.0.0.1', database='mytestdb') cnx._open_connection() cursor = cnx.cursor() cursor.callproc("getperson", [1]) for result in cursor.stored_results(): people = result.fetchall() for person in people: print(person) cnx.close()
此方法成功从存储过程中检索结果并迭代它们以显示人员的详细信息。请注意,cmd_query_iter 和 multi 参数不是必需的,因为我们只执行单个查询。
以上是如何在 Python 中从 MySQL 存储过程中检索结果集?的详细内容。更多信息请关注PHP中文网其他相关文章!