2011-04-22 12 views
2

私はPythonでmysqldbモジュールを使い始めています。私はクエリを呼び出すための「標準的な」方法にいくつかの問題があるようです。Mysqldb AttributeError:cursor

標準的な方法は、カーソルを作成し、それを使用してクエリを実行することです。

私は1つをインスタンス化しようとすると、しかし、それは私に次のエラーを与える:

AttributeError: cursor

マイDatabaseクラスは、次のようになります。今、私はそれがクエリを使用して作業を取得するために

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モジュールはsetから廃止されましたimport immutableSet' – Johanna

答えて

6

接続コンストラクタが間違っています。

MySQLdb.Connectionの代わりにMySQLdb.connectionが動作するはずです。

+0

MySQLdbのオブジェクトはまったく異なります。 –

+0

実際には、挿入クエリを実行しようとすると問題が発生します。私は問題なくデータベースを作成することができましたが、挿入が機能していないようです。それは私にエラーを与えません、それはただ何もしません。私が使用しているコードは次のとおりです: 'format_query =" INSERT INTO(form_name、form_width、form_height、form_fps)VALUES( '+ name + "、" + str(width)+ "、" + str(height)+ " + str(fps)+ ");" db.execute(format_query) '先に説明した「実行」機能を使用する – Johanna

+1

@Johanna cursor.execute( 'COMMIT')を試してください –