2011-04-22 104 views
2

我開始在python中使用mysqldb模塊,我似乎遇到了一些調用查詢的「標準」方法的問題。Mysqldb屬性錯誤:光標

我知道標準的方法是創建一個遊標然後用它來執行查詢。

然而,當我嘗試實例化一個,它給了我下面的錯誤:

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

追溯是在哪裏? – 2011-04-22 13:21:48

+0

回溯只是給了我AttributeError。並且出現以下警告:'D:\ ProgramFiles \ Python26 \ lib \ site-packages \ MySQLdb \ __ init__.py:34:DeprecationWarning:sets模塊從集合中被廢棄import ImmutableSet' – Johanna 2011-04-22 13:33:48

回答

6

您正在使用錯誤的連接構造函數。

MySQLdb.Connection而不是MySQLdb.connection應該工作。

+0

只是不同的MySQLdb對象。 – 2011-04-22 14:22:18

+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)'帶前面描述的「execute」函數 – Johanna 2011-04-22 14:44:09

+1

@Johanna嘗試cursor.execute('COMMIT') – 2011-04-22 15:28:10