我试图通过 python 中的循环删除 mysql 表中的多行。没有错误消息,但最后表没有更新。我的代码是:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="1234",
database="Share")
mycursor = mydb.cursor()
for i in range(288, 297):
sql = "DELETE from name_list where ID = " + str(i)
mycursor.execute(sql)
mydb.commit()
mycursor.execute("SELECT * from Share.name_list")
for row in mycursor.fetchall() :
print(row)
谢谢
请您参考如下方法:
这个怎么样?
for i in range(288, 297):
sql = "DELETE from name_list where ID = %s"
mycursor.execute(sql, (i, ))
mydb.commit()
这应该会根据数据类型自动引用变量,并具有 sql 注入(inject)保护的额外好处。 在这种情况下没关系,因为参数总是由 range() 生成,但手动将变量连接到 sql 查询中通常是个坏习惯。
