`
wwty
  • 浏览: 543042 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

mysqldb调用存储过程返回值的问题

阅读更多

利用mysqldb的callproc调用存储过程时,返回值为输入的参数;

现在的问题是如何获得存储过程本身设定的返回值

存储过程如下:

CREATE PROCEDURE test_stuff.get_lastpoll()
BEGIN
    DECLARE POLLTIME TIMESTAMP DEFAULT NULL;
    START TRANSACTION;

    SELECT poll_date_time
      FROM test_stuff.poll_table
      LIMIT 1 
      INTO POLLTIME
    FOR UPDATE;

    IF POLLTIME IS NULL THEN
        INSERT INTO 
               test_stuff.poll_table 
               (poll_date_time)
        VALUES 
               ( UTC_TIMESTAMP() );

        COMMIT;
        SELECT NULL as POLL_DATE_TIME;
    ELSE
        UPDATE test_stuff.poll_table SET poll_date_time = UTC_TIMESTAMP();
        COMMIT;
        SELECT DATE_FORMAT(POLLTIME, '%Y-%m-%d %H:%i:%s') as POLL_DATE_TIME;
    END IF;
END

 python代码如下:

#!/usr/bin/python

import sys
import MySQLdb

try:
    mysql = MySQLdb.connect(user=User,passwd=Passwd,db="test_stuff")
    mysql_cursor = mysql.cursor()

    results=mysql_cursor.callproc( "get_lastpoll", () )
    print results

    mysql_cursor.close()
    mysql.close()

except MySQLdb.Error, e:
    print "MySQL Error %d:  %s" % ( e.args[0], e.args[1] )
    sys.exit(1)

 这个程序期望能够获得存储过程的返回值如下:

POLL_DATE_TIME       
-------------------  
2009-02-18 22:27:07

但是结果却不是,而是你传给存储过程的参数

 

解决过程如下:

mysql_cursor.execute( "call get_lastpoll();" )
results=mysql_cursor.fetchone()
print results[0]

 如果是带参数的存储过程:

                cursor.execute( "call pro_recharge('10010328','2010-05-10','1234567890111125');" )
                results=cursor.fetchone()
                print results[0]

问题解决

分享到:
评论

相关推荐

    Python简单调用MySQL存储过程并获得返回值的方法

    在Python编程中,调用MySQL数据库的存储过程并获取返回值是常见的操作,尤其是在执行复杂的数据库操作时。这里我们将详细探讨如何使用Python的`MySQLdb`库来完成这个任务。 首先,确保你已经安装了`MySQLdb`库,...

    python连接mysql调用存储过程示例

    在Python编程中,有时我们需要与关系型数据库进行交互...总之,Python通过`MySQLdb`库可以方便地连接MySQL数据库并调用存储过程。了解如何正确传递参数和获取输出结果是关键,这有助于在实际项目中实现高效的数据操作。

    MySQLdb(64位)

    在实际开发中,MySQLdb通常与其他Python库如`pandas`结合使用,方便地将数据库结果转换为DataFrame,进行数据分析或存储。同时,由于MySQLdb基于较老的MySQL C API,对于较新的MySQL版本,可能需要考虑使用更新的...

    MySQLDB1.2.5

    连接MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip

    离线安装python2的MySQLdb

    如果安装过程中出现权限问题,可能需要使用`sudo`提升权限。安装完成后,MySQLdb模块应该已经被添加到Python的site-packages目录中。 5. **验证安装**:打开Python解释器,尝试导入MySQLdb模块来检查是否安装成功...

    python mysqldb

    在安装或使用Python的MySQLdb时,这些依赖库有时需要被正确地放置在系统路径中,以确保Python程序可以正常调用MySQL的功能。 `MySQL-python-1.2.2.win32-py2.6.exe`是一个可执行文件,它是MySQLdb的安装包,针对...

    python-MySQLdb安装包

    这个包里有两个包,都可以用来在windows上安装python-MySQLdb,选择其中一种就可以!我比较喜欢用-master那个包,因为只要解压后执行python setup.py install就可以了。另一个包在安装时若出现找不到python2.7的安装...

    MySQLdb 1.2.4b4 documentation

    MySQLdb是Python编程语言中用于连接MySQL数据库的一个重要模块,它为Python程序员提供了一个符合Python标准库DB-API接口的MySQL驱动。MySQLdb 1.2.4b4是该模块的一个版本,它提供了稳定性和兼容性的改进,使得Python...

    mysqldb64位

    除了基本的CRUD(创建、读取、更新、删除)操作,MySQLdb还支持事务处理、预编译语句、存储过程调用等功能,为Python开发者提供了丰富的数据库操作能力。 总结一下,"mysqldb64位"是针对Windows 64位平台的Python ...

    MySQLdb-Python

    MySQLdb-Python是Python编程语言中用于连接MySQL数据库的一个重要模块。这个模块为Python程序员提供了一个接口,使得他们能够方便地在Python程序中操作MySQL数据库,执行SQL查询,管理数据等任务。它基于DB-API...

    python MySQLdb封装

    封装了mysqldb方法方便调用。直接在脚本引用

    MysqlDB pymysql操作类库.py.zip

    MySQLDB是Python编程语言中用于连接和操作MySQL数据库的一个接口,而pymysql则是MySQLDB的一个替代品,它是一个纯Python实现的MySQL驱动程序。在Python中,使用这些库可以方便地进行数据库的CRUD(创建、读取、更新...

    python MySQLdb 64位win7安装版本

    6. **错误处理**:在实际操作中,可能会遇到权限问题、数据库连接错误等问题,需要根据错误信息进行排查。例如,检查MySQL服务是否正在运行,用户名和密码是否正确,以及数据库是否已创建。 了解了这些基本知识后,...

    python数据库mysqldb的使用_直接调用_导入数据库必备辅助模块

    python数据库连接,数据导入,能直接使用的模块类,还添加了方便的使用方法。python新手必备,老手到这么用。

    MySQLdb,python

    MySQLdb是Python编程语言中一个常用的库,它提供了与MySQL数据库交互的能力。这个库使得Python开发者可以方便地使用Python语法来执行SQL语句,管理数据库,以及处理数据。在描述中提到的`__init__.py`和`converters....

    Win环境下配置Python3 MySQLdb

    在安装过程中,可能会遇到依赖问题,因为`mysqlclient`需要`libmysqlclient`库。在Windows上,你需要安装MySQL的Connector/C,这通常包含了所需的库。可以从MySQL官网下载并安装MySQL Connector/C。 安装完`...

    python2.6-MySQLdb

    python2.6-MySQLdb,包括python2.6安装包、MySQLdb for python2.6安装包、MySQLdb使用配置,为想学习Python操作mysql数据库的同学提供了极大的方便。。。

Global site tag (gtag.js) - Google Analytics