Python MySQL Gdzie
Wybierz z filtrem
Wybierając rekordy z tabeli, można filtrować wybór za pomocą instrukcji „WHERE”:
Przykład
Wybierz rekord(y) z adresem „Park Lane 38”: wynik:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)
Znaki wieloznaczne
Możesz także wybrać rekordy, które zaczynają się, zawierają lub kończą się daną literą lub frazą.
Użyj %
do reprezentowania znaków wieloznacznych:
Przykład
Wybierz rekordy, w których adres zawiera słowo „droga”:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)
Zapobiegaj wstrzykiwaniu SQL
Gdy wartości zapytania są dostarczane przez użytkownika, należy je zmienić.
Ma to na celu zapobieganie wstrzykiwaniu SQL, które jest powszechną techniką hakerską w celu zniszczenia lub niewłaściwego wykorzystania bazy danych.
Moduł mysql.connector posiada metody ucieczki wartości zapytań:
Przykład
Pomiń wartości zapytania przy użyciu %s
metody zastępczej:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)