Python MySQL Waar
Selecteer met een filter
Wanneer u records uit een tabel selecteert, kunt u de selectie filteren met behulp van het "WHERE"-statement:
Voorbeeld
Selecteer record(s) waarvan het adres "Park Lane 38" is: resultaat:
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)
Jokertekens
U kunt ook de records selecteren die beginnen, bevatten of eindigen met een bepaalde letter of zin.
Gebruik de %
om jokertekens weer te geven:
Voorbeeld
Selecteer records waarvan het adres het woord "way" bevat:
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)
SQL-injectie voorkomen
Wanneer querywaarden door de gebruiker worden verstrekt, moet u de waarden escapen.
Dit is om SQL-injecties te voorkomen, een veelgebruikte hacktechniek om uw database te vernietigen of te misbruiken.
De module mysql.connector heeft methoden om aan querywaarden te ontsnappen:
Voorbeeld
Escape-querywaarden met behulp van de placholder- %s
methode:
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)