Python MySQL Wo

Verwenden Sie den Filter, um auszuwählen

Bei der Auswahl von Aufzeichnungen aus einer Tabelle kann das "WHERE"-Statement verwendet werden, um die Auswahl zu filtern:

Beispiel

Wählen Sie Aufzeichnungen aus, die "Park Lane 38" lauten, Ergebnisse:

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)

Führen Sie das Beispiel aus

Wildcard-Zeichen

Sie können auch Aufzeichnungen auswählen, die mit der angegebenen Buchstabe oder dem Wort beginnen, enthalten oder enden.

Verwenden Sie Stellt den Wildcard-Zeichen dar:

Beispiel

Wählen Sie Aufzeichnungen aus, die das Wort "way" im Adressfeld enthalten:

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)

Führen Sie das Beispiel aus

Verhindern Sie SQL-Injection

Wenn Sie Abfragewerte von den Benutzern erhalten, sollten Sie diese Werte escapen.

Dies geschieht, um SQL-Injection zu verhindern, eine gängige Hacker-Technik, die Ihre Datenbank beschädigen oder missbrauchen kann.

Der mysql.connector-Modul verfügt über Methoden, um Abfragewerte zu escapen:

Beispiel

Verwenden Sie das Platzhalter-%s-Verfahren, um den Abfragewert zu escapen:

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)

Führen Sie das Beispiel aus