Skip to main content
 首页 » 编程设计

python之删除行后 commit() 未提交 mysql 表

2024年09月03日23myhome

我试图通过 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() 

source

这应该会根据数据类型自动引用变量,并具有 sql 注入(inject)保护的额外好处。 在这种情况下没关系,因为参数总是由 range() 生成,但手动将变量连接到 sql 查询中通常是个坏习惯。