2016-06-07 15 views
1

Bitte kann jemand helfen, ich kann nicht glauben, dass ich das nicht richtig bekomme. Ich versuche, die Anzahl der Zeilen zu zählen, die ich in einer MySQL-Datenbank habe. Die richtige Zahl ist 7, aber jedes Mal, wenn ich das Folgende ausführe, bekomme ich eine Antwort von -1. Die Verbindung wird successfully.I etabliert Python ist mit 3.4.4Python rowcount Rückkehr negativ 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) 

Antwort

3

Nach den documentation:

Für ungepufferte Cursor kann die Zeilenanzahl nicht bekannt sein, bevor die Zeilen abgerufen wurden. In diesem Fall ist die Anzahl der Zeilen unmittelbar nach der Abfrageausführung gleich -1 und wird erhöht, wenn Zeilen abgerufen werden.

Was bedeutet, dass, um für .rowcount in diesem Fall zu arbeiten, müssen Sie die Ergebnisse zuerst holen.

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

Natürlich können Sie auch die Länge der rows Liste.