2014-04-21 133 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

相关问题