how to use rowcount in mysql using python

Viewed 38402

We are implementing a database in a student record project. We want to see that how many rows are there in a table before and after deleting a row from a table. The code we tried is as follows:

1  roll=5
2  m = mysql.connector.connect(host='localhost', database='student',user='root', password='')
3  cur = m.cursor()
4  rc = cur.rowcount
5  print("%d"%rc)
6  e=cur.execute("DELETE FROM `acc_details` WHERE roll_No=%s" % roll)
7  print("%d"%cur.rowcount) 

In the above code, the first rowcount in line 4 is giving -1 as the output and the rowcount in the last line is giving the no of rows that the table has after deleting a row.

Why is the first rowcount in line 4 give -1 as the output?

Any help shall be great.

3 Answers

cursor.rowcount will output -1 until you have fetched all rows of the result. Unless you are using a buffered cursor, you should use cursor.fetchall() before getting the real number of rows.

Related