我試圖打開遊標到MySQL-DB。但我發現了這個錯誤:Python:MySQL連接已打開,但無法創建光標
'NoneType' object has no attribute 'cursor'
這裏是一個小源代碼:
class Sample:
def __init__(self):
self.conn = None
self.value = self.setValue()
def connect(self):
self.conn = MySQLdb.connect(...)
#cursor = self.conn.cursor()
#cursor.execute("SELECT ...")
#value = str(cursor.fetchone()[0])
#raise Exception(value)
#cursor.close() <- here everything is working fine
def setValue(self):
if (self.conn == None):
self.connect()
#raise Exception(self.conn.open)
cursor = self.conn.cursor() # ERROR: 'NoneType' object has no attribute 'cursor'
...
如果我使用的例外,我得到一個1個...連接打開。
如果我在「連接」函數中創建了遊標創建和SQL語句,那麼一切都運行良好。
奇怪的是,一切看起來都是正確的,對於具有相同功能的其他連接,一切都運行良好。我不知道如何解決這個錯誤。我希望有人能指出我正確的方向。
你確定你不錯過一些重要的代碼嗎?難道這不可能是另一條線上的錯誤,或者你把它意外地放到了不同的對象中? – Vyktor 2013-04-24 14:59:29
@Vyktor:我增加了一些代碼。 – Joko 2013-04-24 15:04:18
@eandersson不,你錯了。你應該**總是**手動關閉光標。否則你會得到內存泄漏。 – Vyktor 2013-04-24 15:08:38