首页 >数据库 >mysql教程 >如何使用 Python 从 MySQL 存储过程中检索结果?

如何使用 Python 从 MySQL 存储过程中检索结果?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-02 01:59:10695浏览

How Can I Retrieve Results from MySQL Stored Procedures Using Python?

使用 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中文网其他相关文章!

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