目录
删除记录
防止 SQL 注入
删除记录
您可以使用“DELETE FROM”语句从现有表中删除记录。例如删除地址为“笨小孩”的任何记录:
# coding=gbk
#连接
import pymysqlmydb = pymysql.connect(host="localhost", #默认用主机名port=3306,user="root", #默认用户名password="123456", #mysql密码database='student', #库名charset='utf8' #编码方式
)print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()#创建SQL查询语句并逆序排序
sql = "DELETE FROM stu WHERE name = '笨小孩'"
#执行sql语句
mycursor.execute(sql)
#提交语句
mydb.commit()
#打印
print(mycursor.rowcount, "记录已删除")
运行:
请注意 DELETE 语法中的 WHERE 子句: WHERE 子句指定应删除哪些记录。如果省略 WHERE 子句,将删除所有记录!
防止 SQL 注入
转义任何查询的值被认为是一种很好的做法,也在删除语句中。这是为了防止 SQL 注入,这是一种常见的网络黑客技术,用于破坏或滥用您的数据库。mysql.connector 模块使用占位符%s来转义 delete 语句中的值:
# coding=gbk
#连接
import pymysqlmydb = pymysql.connect(host="localhost", #默认用主机名port=3306,user="root", #默认用户名password="123456", #mysql密码database='student', #库名charset='utf8' #编码方式
)print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()#创建SQL查询语句并逆序排序
sql = "DELETE FROM stu WHERE name = %s"
adr = ("懒洋洋",)
#执行sql语句
mycursor.execute(sql,adr)
#提交语句
mydb.commit()
#打印
print(mycursor.rowcount, "记录已删除")
运行: