我如何在Python中使用MySQL-Connector从MySQL存储过程中获取一个输出参数?

问题描述 投票:0回答:1

我在使用Python(3.7)和sql connector(8x)从MySQL(8x)中的存储过程中访问一个输出参数值时遇到了麻烦。

我的存储过程是一个更新过程,它可以正常工作,但是我不知道如何在代码中获取输出值。

下面是我的存储过程...我只是想访问名为 "out "的参数。成功 在python中,我不知道该用什么方法调用游标对象,或者如何处理这个问题。

CREATE DEFINER=`root`@`localhost` PROCEDURE `update_due_date`(param_bookId int, param_cardNumber int, param_dueDate date, out success int)
BEGIN
    UPDATE tbl_book_loans
    SET dueDate = param_dueDate
    WHERE bookId = param_bookId and cardNo = param_cardNumber;        
    SET success = 777666;    
END

这是我的python函数(python 3.7),我只是不知道在游标对象上调用什么方法,或者如何处理这个问题。 for循环也没有打印任何东西,我猜想是因为游标存储的结果是空的。

任何帮助都是感激的,谢谢。

def updateDueDate(bookId, cardNo, newDueDate):
    args = [bookId, cardNo, newDueDate, 0]

    myCursor.callproc(
        'update_due_date', args)
    myCursor.execute()

    for result in myCursor.stored_results():
        print(result.fetchall())
    cnx.commit()
python mysql mysql-connector
1个回答
2
投票

这将让你得到第四个参数

见官方 文件

def updateDueDate(bookId, cardNo, newDueDate):
    args = [bookId, cardNo, newDueDate, 0]

    result_args = cursor.callproc('update_due_date', args)

    print(result_args[4])
© www.soinside.com 2019 - 2024. All rights reserved.