【问题标题】:NoneType object has no attribute cursorNoneType 对象没有属性 cursor
【发布时间】:2014-06-05 07:40:53
【问题描述】:

我在循环中的 2 行以下调用,因此在给定时间打开了数千个连接。有时,此代码会引发异常,提示 'NoneType' object has no attribute cursor

为什么会这样? MYSql 的数据库连接用完了吗?

conn=MYSQLdb.connect(params)

conn.cursor()

【问题讨论】:

  • 听起来很可能。您在循环内建立连接是否有特定原因?你不能重复使用相同的连接吗?还是在完成后关闭它们?
  • @KarlKnechtel 系统要求是并行添加多行,这样一个连接就无法工作。我一完成就关闭连接。因此,系统一次有数百个 http 请求进入,每个请求都会触发数据库中的一个条目。所以我不能对所有这些都使用一个连接。
  • note 听起来您可能已经知道这一点,但由于您的措辞含糊不清,我想指出“NoneType”对象没有属性“x”异常表明您试图获取 a 的属性无(空)对象。

标签: python mysql cursor mysql-python


【解决方案1】:

今天我遇到了这个问题。我阅读了 MySQL DB 文档,发现了一些可以帮助我的东西。这可能对你有帮助。现在,文档说:

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

所以,现在您已经打开了与 DB 的连接并想要进行查询。好吧,MySQL中没有游标,也没有参数替换,所以你必须将完整的查询字符串传递给db.query()

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

现在,也许这个库做了一些改变,然后属性光标被查询替换了。

【讨论】:

  • 下一行也是doc cursor([cursorclass]) MySQL不支持游标;但是,游标很容易模拟。您可以提供替代游标类作为可选参数。如果不存在,则默认为创建连接对象或标准 Cursor 类时给定的值。另请参阅用法部分中提供的其他游标类。
猜你喜欢
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 2022-11-13
  • 2021-11-02
  • 2014-07-05
  • 2018-05-05
相关资源
最近更新 更多