Python MySQL Delete From

レコードの削除

「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, "削除されたレコード数")

インスタンスを実行

重要:文に注意してください mydb.commit()変更が必要でないと、テーブルに何も変更が加わりません。

DELETE 语法の WHERE 子句に注意してください:WHERE 子句は削除するべきレコードを指定します。WHERE 子句を省略すると、すべてのレコードが削除されます!

SQL インジェクションを防ぐ

delete ステートメント内で、どんなクエリの値もエスケープすることも良い習慣です。

これは SQL インジェクションを防ぐためです。これは一般的なネットワークハッキング技術であり、データベースを破壊または悪用する可能性があります。

mysql.connector モジュールは占位符を使用 %s delete ステートメント内の値をエスケープする方法:

占位符を使用して: %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, "削除されたレコード数")

インスタンスを実行