MySQL Where
انتخاب براساس یک فیلتر
وقتی که یک رکورد را از یک جدول انتخاب میکنید میتوانید با دستور “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()
for x in myresult:
print(x)
Wildcard Characters
میتوان رکوردهایی را که حاوی کلمات و عبارات خاصی هستند انتخاب کرد.
با استفاده از % میتوان این مسئله را بیان کرد.
مثال: انتخاب رکوردهایی که در آدرس شان کلمه “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()
for x in myresult:
print(x)
جلوگیری از تزریق (Prevent SQL Injection)
وقتی که کاربر یک query را میدهد شما باید از آن فرار کنید.
این برای جلوگیری از تزریق SQL است. که یک تکنیک جلوگیری از حمله هکر ها به منظور از بین بردن پایگاه داده محسوب میشود.
ماژول mysql.connector متد هایی برای فرار از تزریق SQL دارد.
مثال: فرار از تزریق SQL با استفاده از 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()
for x in myresult:
print(x)