2016-11-16 16 views
1

私はPythonの初心者で、データベース接続用のクラスオブジェクトを作成しようとしています。私は、クラス内の別の関数で作成された関数から変数にアクセスしようとすると、問題に遭遇しているようです。これは可能ですか、それとも私は間違った方向に向かっていますか? db_results = oyn_conn.Execute(クエリ)見出しAttributeError: 'DB_Connector'オブジェクトに 'cursor'属性がありません

class DB_Connector(object): 
def __init__(self, user,passwd,db): 
    self.user = user 
    self.passwd = passwd 
    self.db = db 
    self.CreateConnection 

def CreateConnection(self): 
    self.cursor = mysql.connector.connect(user=self.user,password = self.password,database= self.db) 

def Execute(self, sql_statement): 
    self.cursor.execute(sql_statement) 
    return self.cursor.fetchall() 

query = "select venue_name,venue_id from venue where venue_id in('1435','345')" 
oyn_conn = DB_Connector('root','password','oyn_db') 
db_results = oyn_conn.Execute(query) 
+0

CreateConnectionの呼び出しで括弧が見つからないようです。それは 'self.CreateConnection()'でなければなりません。 –

答えて

0

オクラホマに記載されてはAttributeErrorを持つので、私はそれで遊んと答えを見つけ、私は私のコードでは、いくつかのsytaxエラーを持っていた:最後の行のコードエラー:

class DB_Connector(object): 
def __init__(self, user,passwd,db): 
    self.user = user 
    self.passwd = passwd 
    self.db = db 
    self.CreateConnection() 

def CreateConnection(self): 
    self.cnx = mysql.connector.connect(user=self.user,passwd = self.passwd,database= self.db) 
    self.cursor = self.cnx.cursor() 
    self.cnx._open_connection() 

def Execute(self, sql_statement): 
    self.cursor.execute(sql_statement) 
    return self.cursor.fetchall() 

def DestroyConnection(self): 
    self.cursor.close() 

query = "select venue_name,venue_id from venue where venue_id 
in('1332343501255','1888841136809')" 
oyn_conn = DB_Connector('root','password','oyn_db') 
db_results = oyn_conn.Execute(query) 
print(db_results) 
oyn_conn.DestroyConnection() 
関連する問題