Python rowcount返回负1

问题描述:

请有人可以帮助我不能相信我没有得到这个权利。我正在计算我在mysql数据库中的行数。正确的数字是7,但是每次执行以下时,我都会得到-1的答案。建立连接successfully.I我使用Python 3.4.4Python rowcount返回负1

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) 

按照documentation

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

这意味着,为了.rowcount在这种情况下工作,你必须取第一结果。

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

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