如何使用 MySQL-Connector 从 Python 中的 MySQL 存储过程检索输出参数?
How do I retrieve an out parameter from a MySQL Stored Procedure in Python using MySQL-Connector?
我在使用 Python(3.7) 和 sql 连接器 (8x) 从 MySQL(8x) 中的存储过程访问输出参数值时遇到问题。
我的存储过程是一个更新过程,它正在运行,但是我不知道如何在代码中获取输出值。
这是我的存储过程...我只想访问 python.
中名为 success 的输出参数
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函数(python3.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()
这将为您获取第四个参数
def updateDueDate(bookId, cardNo, newDueDate):
args = [bookId, cardNo, newDueDate, 0]
result_args = cursor.callproc('update_due_date', args)
print(result_args[3])
我在使用 Python(3.7) 和 sql 连接器 (8x) 从 MySQL(8x) 中的存储过程访问输出参数值时遇到问题。
我的存储过程是一个更新过程,它正在运行,但是我不知道如何在代码中获取输出值。
这是我的存储过程...我只想访问 python.
中名为 success 的输出参数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函数(python3.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()
这将为您获取第四个参数
def updateDueDate(bookId, cardNo, newDueDate):
args = [bookId, cardNo, newDueDate, 0]
result_args = cursor.callproc('update_due_date', args)
print(result_args[3])