2014-04-21 135 views
0

我在一個循環中的2行以下調用,因此在給定的時間成千上萬的連接打開。有時候這段代碼引發了一個異常,說'NoneType' object has no attribute cursorNoneType對象沒有屬性光標

爲什麼會發生這種情況? MYSQL是否耗盡數據庫連接?

conn=MYSQLdb.connect(params) 

conn.cursor() 
+0

聽起來很可能。你在循環內部建立連接有什麼特定的原因嗎?你不能重新使用相同的連接嗎?或者在完成後關閉它們? –

+0

@KarlKnechtel系統要求是添加多行parallaly,因此一個連接將不起作用。我在完成任務後立即關閉連接。因此,一次有數百個http請求進入系統,並且每個請求都會觸發數據庫中的條目。所以我不能爲它們全部使用單個連接。 –

+0

注意它聽起來像你可能已經知道這一點,但由於你的措辭不明確我想指出'NoneType'對象沒有屬性'x'異常表明你試圖獲得無(null)對象的屬性。 –

回答

-2

今天我遇到了這個問題。我閱讀了MySQL DB文檔,並發現了一些可以幫助我的東西。這可能對你有幫助。現在,文檔說:

db=_mysql.connect("localhost","joebob","moonpie","thangs"); 

所以,現在你有一個開放的連接到數據庫,並希望做一個查詢。那麼,有在MySQL沒有光標,沒有參數替代,讓你有一個完整的查詢字符串傳遞給db.query()

db.query("""SELECT spam, eggs, sausage FROM breakfast WHERE price < 5""") 

現在,也許這個庫進行一些更改,則屬性光標被取代查詢。

+0

下一行也形成doc遊標([cursorclass]) MySQL不支持遊標;不過,遊標很容易模擬。您可以提供一個可選的遊標類作爲可選參數。如果不存在,則默認爲創建連接對象或標準Cursor類時給出的值。另請參閱用法部分中的其他提供的遊標類。 – HankLee

相關問題