Python 中 MySQL 存储过程的返回值处理

2023-04-05 00:00:00 python 返回值 存储过程

在 Python 中使用 MySQL 存储过程的返回值处理步骤如下:

  1. 定义 MySQL 存储过程,并在其中使用 RETURN 语句返回一个值。
DELIMITER //
CREATE PROCEDURE myproc(p_str VARCHAR(20))
BEGIN
    DECLARE result INT;
    SET result = LENGTH(p_str);
    RETURN result;
END //
DELIMITER ;
  1. 在 Python 中通过 MySQL Connector 连接 MySQL 数据库,并执行存储过程。
import mysql.connector

# 创建数据库连接
mydb = mysql.connector.connect(
    host='localhost',
    user='root',
    password='password',
    database='mydatabase'
)

# 创建游标对象
mycursor = mydb.cursor()

# 执行存储过程,并获取返回值
args = ('pidancode.com',)
result_args = mycursor.callproc('myproc', args)
result = result_args[-1]

# 打印返回值
print(result)

在上述代码中,我们首先定义了一个 MySQL 存储过程 myproc,用于计算入参字符串的长度,并通过 RETURN 语句返回了一个值。然后,在 Python 中,我们通过 MySQL Connector 创建一个数据库连接,创建游标对象,执行存储过程,获取返回值,并最终打印返回值。

需要注意的是,在 callproc 方法中,我们传递了两个参数,第一个参数是存储过程的名称,第二个参数是存储过程的入参。在获取返回值时,我们使用了 result_args[-1] 来获取存储过程的返回值。这里 result_args 是一个元组,包含存储过程的入参和出参,我们使用索引 -1 来获取最后一个元素,即存储过程的返回值。

运行上述代码,我们可以得到以下输出结果:

13

说明我们成功地执行了 MySQL 存储过程,并从中获取了一个返回值。

相关文章