目录
删除记录
防止 SQL 注入
您可以使用“DELETE FROM”语句从现有表中删除记录。例如删除地址为“笨小孩”的任何记录:
# coding=gbk #连接 import pymysql mydb = 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 注入,这是一种常见的网络黑客技术,用于破坏或滥用您的数据库。mysql.connector 模块使用占位符%s来转义 delete 语句中的值:
# coding=gbk #连接 import pymysql mydb = 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, "记录已删除")
运行: