Python-MySQL- Wo
Wählen Sie Mit einem Filter aus
Wenn Sie Datensätze aus einer Tabelle auswählen, können Sie die Auswahl filtern, indem Sie die "WHERE"-Anweisung verwenden:
Beispiel
Wählen Sie Datensätze mit der Adresse „Park Lane 38“ aus: Ergebnis:
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)
Platzhalterzeichen
Sie können auch die Datensätze auswählen, die mit einem bestimmten Buchstaben oder Satz beginnen, enthalten oder enden.
Verwenden Sie %
zur Darstellung von Platzhalterzeichen:
Beispiel
Wählen Sie Datensätze aus, bei denen die Adresse das Wort "Weg" enthält:
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-Injection verhindern
Wenn Abfragewerte vom Benutzer bereitgestellt werden, sollten Sie die Werte maskieren.
Dies dient dazu, SQL-Injections zu verhindern, bei denen es sich um eine gängige Web-Hacking-Technik handelt, mit der Ihre Datenbank zerstört oder missbraucht wird.
Das mysql.connector-Modul hat Methoden, um Abfragewerte zu maskieren:
Beispiel
Maskieren Sie Abfragewerte mit der 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)