最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python MySQL callproc方法:调用数据库存储过程

    正文概述    2020-03-26   250

    Python MySQL callproc方法:调用数据库存储过程

    MySQL数据库模块为游标对象提供了一个非标准的 callproc(self, procname, args=()) 方法,该方法用于调用数据库存储过程。

    callproc方法的procname参数代表存储过程的名字,而 args 参数则用于为存储过程传入参数。

    下面的 SQL 脚本可以在 MySQL 数据库中创建一个简单的存储过程。打开 MySQL 的命令行客户端,连接 python 数据库之后,输入如下 SQL 脚本来创建存储过程:

    delimiter //
    create procedure add pro(a int, b int, out sum int)
    begin
    set sum = a + b;
    end;
    //

    下面程序示范了使用 MySQL 数据库模块来调用存储过程:

    # 导入访问MySQL的模块
    import mysql.connector
    
    # ①、连接数据库
    conn = conn = mysql.connector.connect(user='root', password='32147',
        host='localhost', port='3306',
        database='python', use_unicode=True)
    # ②、获取游标
    c = conn.cursor()
    # ③、调用callproc()方法执行存储过程
    # 虽然add_pro存储过程需要3个参数,但最后一个参数是传出参数,
    # 因此程序不会用它的值
    result_args = c.callproc('add_pro', (5, 6, 0))
    # 返回的result_args既包含了传入参数的值,也包含了传出参数的值
    print(result_args)
    # 如果只想访问传出参数的值,可直接访问result_args的第3个元素,如下代码
    print(result_args[2])
    # ④、关闭游标
    c.close()
    # ⑤、关闭连接
    conn.close()

    上面程序中,第 13 行代码就是调用存储过程的关键代码。使用 MySQL 数据库模块调用存储过程非常简单,存储过程需要几个参数,程序通过 callproc() 方法调用存储过程时就传入一个包含几个元素的元组;对于存储过程的传入参数,该参数对应的元组元素负责为传入参数传值;对于存储过程的传出参数,该参数对应的元组元素随便定义即可。

    运行上面的程序,可以看到如下输出结果:

    (5, 6, 11)
    11

    从上面的输出结果来看,当程序使用 Python 调用存储过程后,程序会返回传入参数和传出参数组成的元组,如第一行输出结果所示。如果程序只需要获取传出参数的值,则通过返回的结果元组取出对应的值即可。


    起源地下载网 » Python MySQL callproc方法:调用数据库存储过程

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元