2016-06-07 122 views
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) 

回答

3

按照documentation

對於無緩衝的遊標,行數不能行已提取之前知道。在這種情況下,行數在查詢執行後立即爲-1,並隨着行的提取而增加。

這意味着,爲了.rowcount在這種情況下工作,你必須取第一結果。

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

當然,你也可以得到rows列表的長度。