Python MySQL Delete From

حذف کردن رکورد

برای حذف کردن رکورد از یک جدول، از دستور "DELETE FROM" استفاده می‌شود. برای مثال در کد زیر هر رکوردی که آدرس آن "Mountain 21" باشد، حذف می‌شود.


import mysql.connector
from config import username, password, host

mydb = mysql.connector.connect(
  host= host,
  user= username,
  password= password,
  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() توجه کنید! بدون این دستور هیچ تغییری در جدول ایجاد نمی‌شود و برای حذف کردن رکورد یا هر تغییر دیگری حتماً می‌بایست این دستور نوشته شود.
به عبارت WHERE در نوشتار DELETE دقت کنید. WHERE مشخص می‌کند که کدام رکورد(ها) باید حذف شوند. اگر آن را از نوشتار DELETE حذف کنید، آنگاه همه رکوردها حذف خواهند شد.

جلوگیری از تزریق SQL

تجربه نشان داده که بهتر است از مقادیر هر کوئری فرار کرد. همچنین در عبارات مربوط به DELETE.

این کار برای جلوگیری از تزریق SQL است. SQL Injection یکی از رایج‌ترین راه‌های هک وب جهت خراب کردن یا سوءاستفاده از پایگاه داده شما است.

مدول mysql.connector از % برای فرار از مقادیر داخل دستورات DELETE استفاده می‌کند.


import mysql.connector
from config import username, password, host

mydb = mysql.connector.connect(
  host= host,
  user= username,
  password= password,
  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")

خروجی: