pythonmysql类调用存储过程

2024-09-25 18:24:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的。我所有的经验都是在数据库方面,所以我对Python方面的事情很迷茫。也就是说,我正在尝试创建一个可以用来执行存储过程的类。我使用的是python3.4.3。我在github上找到了一个mysql类,并对其进行了简化/修改以进行proc调用,但它不起作用。在

mysqlquery.py
import mysql.connector, sys
from collections import OrderedDict

class MysqlPython(object):

    __host       = None
    __user       = None
    __password   = None
    __database   = None
    __procname   = None
    __inputvals  = None



    def __init__(self, host='localhost', user='root', password='', database=''):
        self.__host     = host
        self.__user     = user
        self.__password = password
        self.__database = database
    ## End def __init__

    def __open(self):
            cnx = mysql.connector.connect(self.__host, self.__user, self.__password, self.__database)
            self.__connection = cnx
            self.__session    = cnx.cursor()
    ## End def __open       

    def __close(self):
        self.__session.close()
        self.__connection.close()
    ## End def __close

    def proc(self,procname,inputvals):
        self.__open()
        self.__session.callproc(procname, inputvals)
    ## End for proc

## End class

test.py
from mysqlquery import MysqlPython

connect_mysql = MysqlPython()

result = connect_mysql.proc ('insertlink','1,www.test.com')

我得到这个错误

^{pr2}$

看看我的init,它需要5个参数。不知道我为什么会得到这个。再说一次,我很新,所以这可能是一个简单的问题。在

谢谢你的帮助。在

G


Tags: importselfnonehostclosedefmysqlpassword
1条回答
网友
1楼 · 发布于 2024-09-25 18:24:08

mysql.connector.connect()接受命名参数,而不是位置参数,并且缺少名称。在

cnx = mysql.connector.connect(host=self.__host, user=self.__user, password=self.__password, database=self.__database)

相关问题 更多 >