Python rowcount返回负1

the*_*box 2 mysql mysql-python python-3.x

请有人帮忙我不能相信我没有做到这一点.我试图计算我在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)
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 5

根据文件:

对于非缓冲游标,在获取行之前无法知道行计数.在这种情况下,行数在查询执行后立即为-1,并在获取行时递增.

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

cursor.execute("SELECT * FROM test")
rows = cursor.fetchall()
numrows = int(cursor.rowcount)
Run Code Online (Sandbox Code Playgroud)

当然,您也可以获得rows列表的长度.