0
새로운 기능입니다. 내 모든 경험은 DB 측에 있으므로 파이썬 측면에서 길을 잃었다. 그것은 저장 프로 시저를 실행하는 데 사용할 수있는 클래스를 만들려고한다고 말했습니다. 나는 파이썬 3.4.3을 사용하고있다. github에서 mysql 클래스를 발견하고이를 단순화/수정하여 proc 호출을 작성했지만 작동하지 않습니다.저장 프로 시저를 호출하는 Python Mysql 클래스
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')
내가 내 초기화 보면이 오류를
TypeError: __init__() takes 1 positional argument but 5 were given
을 얻을, 그것은 예상대로 5 개 인수를 취할. 왜 내가 이것을 얻었는지 모르겠다. 다시 말하지만, 나는 아주 새롭기 때문에 간단한 문제 일 수 있습니다.
도움 주셔서 감사합니다.
G
__init__ 선언 후 추가 : 문자 – user1929959
두 개의 밑줄 접두사를 모두 삭제하십시오. 그들은 당신이 생각하는 것을하지 않으며 미래에 거의 확실하게 문제를 일으킬 것입니다. –