Python MySQL Update Table

به روزرسانی جدول

با استفاده از دستور "UPDATE" می‌توانید که رکوردهای موجود در یک جدول را به روزرسانی کنید.

در کد زیر در ستون آدرس، آدرس "Valley 345" به "Canyon 123" تغییر می‌دهیم.


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 = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

خروجی:

به عبارت mydb.commit() توجه کنید! بدون این دستور هیچ تغییری در جدول ایجاد نمی‌شود و برای به روزرسانی رکورد یا هر تغییر دیگری حتماً می‌بایست این دستور نوشته شود.
به عبارت WHERE در نوشتار UPDATE دقت کنید. WHERE مشخص می‌کند که کدام رکورد(ها) باید به روزرسانی شوند. اگر آن را از نوشتار DELETE حذف کنید، آنگاه همه رکوردها به روزرسانی خواهند شد.

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

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

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

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


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 = "UPDATE customers SET address = %s WHERE address = %s"
val = ("Valley 345", "Canyon 123")

mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

خروجی: