【问题标题】:Python rowcount returning negative 1Python 行数返回负 1
【发布时间】:2016-10-07 14:31:21
【问题描述】:

请有人帮助我无法相信我没有做对。我正在尝试计算 mysql 数据库中的行数。正确的数字是 7,但是每次执行以下操作时,我都会得到 -1 的答案。连接建立成功。我使用的是python 3.4.4

import mysql.connector

config = {
'user': 'root', 
'password': '', 
'host': '127.0.0.1',
'database': 'test'
}  
cnx =mysql.connector.MySQLConnection(**config)

if cnx.is_connected():
   print('Connected to MySQL database')

cursor = cnx.cursor()
cursor.execute("SELECT * FROM test")
numrows = int (cursor.rowcount)
print(numrows)

【问题讨论】:

    标签: mysql python-3.x mysql-python


    【解决方案1】:

    根据documentation

    对于非缓冲游标,在获取行之前无法知道行数。在这种情况下,行数在查询执行后立即为 -1,并随着行的获取而增加。

    这意味着,为了让.rowcount 在这种情况下工作,您必须首先获取结果

    cursor.execute("SELECT * FROM test")
    rows = cursor.fetchall()
    numrows = int(cursor.rowcount)
    

    当然,你也可以得到rows列表的长度。

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 2018-08-28
      • 2014-10-22
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 2021-08-01
      • 1970-01-01
      相关资源
      最近更新 更多