如何使用 python 在 mysql 中使用行数

how to use rowcount in mysql using python

我们正在学生记录项目中实施数据库。我们想看看从 table 中删除一行前后,table 中有多少行。 我们试过的代码如下:

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) 

在上面的代码中,第 4 行中的第一个行数给出 -1 作为输出,最后一行中的行数给出删除行后 table 的行数。

为什么第 4 行的第一行计数输出 -1?

任何帮助都将是巨大的。

根据 psycopg2 的文档,cur.rowcount returns 同一 cur 对象的最后一个执行方法影响的行数,因此第一个 returns -1 cur.rowcount 调用,因为没有先前的 execute() 方法。

你可以试试这个-

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

包含您的代码

m.commit()
cur.close()
m.close()

如果您的代码没有这些,也许您可​​以添加它们。 和你的前 4 行,我认为你应该添加

cur.execute('select * from 'table_name'')
cur.fetchall()

那你就可以得到rowcount.I希望我的回答能帮到你

cursor.rowcount 将输出 -1,直到您获取了结果的所有行。除非您使用缓冲游标,否则您应该在获取实际行数之前使用 cursor.fetchall()。