Python MySQL删除

x33g5p2x  于2021-09-18 转载在 Python  
字(1.1k)|赞(0)|评价(0)|浏览(627)

文章目录

  • 删除记录
  • 防止 SQL 注入

删除记录

您可以使用“DELETE FROM”语句从现有表中删除记录。例如删除地址为“Mountain 21”的任何记录:

  1. # coding=gbk
  2. """
  3. 作者:川川
  4. @时间 : 2021/9/14 20:32
  5. 群:970353786
  6. """
  7. import mysql.connector
  8. mydb = mysql.connector.connect(
  9. host="localhost", # 默认用主机名
  10. user="root", # 默认用户名
  11. password="123456", # mysql密码
  12. charset='utf8', # 编码方式
  13. database="chuan" # 数据库名称
  14. )
  15. mycursor = mydb.cursor()
  16. sql = "DELETE FROM user WHERE address = 'Mountain 21'"
  17. mycursor.execute(sql)
  18. mydb.commit()
  19. print(mycursor.rowcount, "记录已删除")

运行:

在这里插入图片描述

请注意 DELETE 语法中的 WHERE 子句: WHERE 子句指定应删除哪些记录。如果省略 WHERE 子句,将删除所有记录!

防止 SQL 注入

转义任何查询的值被认为是一种很好的做法,也在删除语句中。这是为了防止 SQL 注入,这是一种常见的网络黑客技术,用于破坏或滥用您的数据库。mysql.connector 模块使用占位符%s来转义 delete 语句中的值:

  1. # coding=gbk
  2. """
  3. 作者:川川
  4. @时间 : 2021/9/14 20:35
  5. 群:970353786
  6. """
  7. import mysql.connector
  8. mydb = mysql.connector.connect(
  9. host="localhost", # 默认用主机名
  10. user="root", # 默认用户名
  11. password="123456", # mysql密码
  12. charset='utf8', # 编码方式
  13. database="chuan" # 数据库名称
  14. )
  15. mycursor = mydb.cursor()
  16. sql = "DELETE FROM user WHERE address = %s"
  17. adr = ("Ocean blvd 2", )
  18. mycursor.execute(sql, adr)
  19. mydb.commit()
  20. print(mycursor.rowcount, "记录已经删除")

运行:

在这里插入图片描述

相关文章