使用 Python 游标从存储过程中检索结果
在 Python 中,可以使用 mysql 来实现连接 MySQL 数据库并执行存储过程.连接器模块。但是,从存储过程检索结果可能会遇到挑战。
要解决此问题,必须显式指示用于调用存储过程的游标使用stored_results() 方法检索结果。此方法返回结果集的迭代器,如果存储过程返回多个结果集,则允许检索多个结果集。
在提供的示例中,存储过程 getperson 返回单个结果集。以下代码显示如何检索其结果:
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()
在此代码中,使用参数 1 调用存储过程,并使用stored_results() 方法检索单个结果集。然后迭代并打印结果。
此解决方案克服了所提供的代码中遇到的问题,例如“没有可从中获取的结果集”错误以及对多个结果集的不当处理。通过使用stored_results()显式检索结果集,代码可以按预期访问存储过程调用的结果。
以上是如何使用 Python 从 MySQL 存储过程中检索结果?的详细内容。更多信息请关注PHP中文网其他相关文章!