Python MySQL جایی که

برای انتخاب با استفاده از فیلتر

هنگام انتخاب رکوردها از جدول می‌توان از عبارت "WHERE" برای فیلتر کردن انتخاب استفاده کرد:

مثال

انتخاب رکوردی که "Park Lane 38" است، نتایج:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address ='Park Lane 38'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
برای x در myresult:
  print(x)

اجرای مثال

نشانگر

شما همچنین می‌توانید رکوردهایی که با حرف یا عبارت داده شده شروع، شامل یا پایان می‌یابند را انتخاب کنید.

لطفاً از % نشانگر

مثال

انتخاب رکوردهایی که در آدرس شامل کلمه "way" هستند:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address LIKE '%way%"
mycursor.execute(sql)
myresult = mycursor.fetchall()
برای x در myresult:
  print(x)

اجرای مثال

جلوگیری از نفوذ SQL

هنگامی که مقادیر جستجو توسط کاربر ارائه می‌شود، باید این مقادیر را فرار کنید.

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

مодуل mysql.connector روش‌هایی برای فرار کردن مقادیر جستجو دارد:

مثال

از روش جایگزین‌گذاری جایگاه %s برای فرار کردن مقادیر جستجو استفاده کنید:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address =" %s"
adr = ("Yellow Garden 2", )
mycursor.execute(sql, adr)
myresult = mycursor.fetchall()
برای x در myresult:
  print(x)

اجرای مثال