Python MySQL 删除记录



  • 删除记录

    您可以使用“DELETE FROM”语句从现有表中删除记录:
    删除地址为“ Mountain 21”的所有记录:
    import mysql.connector
    
    mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      passwd="yourpassword",
      database="mydatabase"
    )
    
    mycursor = mydb.cursor()
    
    sql = "DELETE FROM customers WHERE address='Mountain 21'"
    
    mycursor.execute(sql)
    
    mydb.commit()
    
    print(mycursor.rowcount, "record(s) deleted")
    
    重要提示!:请注意以下声明: mydb.commit()。进行写表是必需要提供的,否则将不对表进行任何更改。
    请注意DELETE语法中的WHERE子句: WHERE子句指定应删除的记录。如果省略WHERE子句,所有记录将被删除!
  • 防止SQL注入

    最好还是在delete语句中转义任何查询的值。这是为了防止SQL注入,这是破坏或滥用数据库的常见Web黑客技术。mysql.connector模块使用占位符%sdelete语句中的值进行转义:
    通过使用占位符%s方法转义值:
    import mysql.connector
    
    mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      passwd="yourpassword",
      database="mydatabase"
    )
    
    mycursor = mydb.cursor()
    
    sql = "DELETE FROM customers WHERE address=%s"
    adr = ("Yellow Garden 2", )
    
    mycursor.execute(sql, adr)
    
    mydb.commit()
    
    print(mycursor.rowcount, "record(s) deleted")