2011-04-22 6 views
2

파이썬에서 mysqldb 모듈을 사용하기 시작했고 쿼리를 호출하는 "표준"방법에 문제가있는 것 같습니다.Mysqldb AttributeError : 커서

표준 방법은 커서를 만든 다음 쿼리를 실행하는 것입니다.

AttributeError: cursor

내 데이터베이스 클래스는 다음과 같습니다 : 지금

class Database(): 

    def __init__(self): 
     server = "localhost" 
     login = "login" 
     password = "passws" 
     database = "DB" 
     my_conv = { FIELD_TYPE.LONG: int } 

     self.conn = MySQLdb.connection(user=login, passwd=password, db=database, host=server, conv=my_conv) 
     self.cursor = self.conn.cursor() 

    def close(self): 
     self.conn.close() 

    def execute(self, query): 
     self.cursor.execute(query) 
     return self.cursor.fetchall() 

나는 그것이 쿼리를 사용하여 작업을 진행하게 내가 하나를 실체화 할 때

그러나, 그것은 나에게 다음과 같은 오류를 제공합니다 방법을 사용하지만, 표준을 사용하지 않으면 나중에 문제가 생길 것입니다.

아이디어가 있으십니까?

+2

그리고 추적은 어디에 있습니까? –

+0

추적 기능을 통해 AttributeError를 얻을 수 있습니다. 그리고 다음과 같은 경고 :'D : \ ProgramFiles \ Python26 \ lib \ site-packages \ MySQLdb \ __ init__.py:34 : DeprecationWarning : sets 모듈은 sets에서 더 이상 사용되지 않는다 import immutableSet' – Johanna

답변

6

잘못된 연결 생성자를 사용하고 있습니다.

MySQLdb.Connection 대신 MySQLdb.connection이 작동해야합니다.

+0

MySQLdb 객체가 다르다. –

+0

사실 이제 삽입 쿼리를 실행하려고하면 문제가 발생합니다. 문제없이 데이터베이스를 만들 수는 있지만 인서트가 작동하지 않는 것 같습니다. 그것은 나에게 아무 오류도주지 않는다, 그것은 단지 아무것도하지 않는다. 내가 사용하는 코드는 다음과 같다 :'format_query = "INSERT INTO Format (form_name, form_width, form_height, form_fps) VALUES ('+ name +"', "+ str (width) +", "+ str (height) +", " + str (fps) + ");" db.execute (format_query)'이전에 설명한 "execute"함수 사용 – Johanna

+1

@ Johanna cursor.execute ('COMMIT')를 시도하십시오 –