Python MySQL Dove
Seleziona Con un filtro
Quando si selezionano record da una tabella, è possibile filtrare la selezione utilizzando l'istruzione "WHERE":
Esempio
Seleziona i record in cui l'indirizzo è "Park Lane 38": risultato:
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)
Caratteri jolly
Puoi anche selezionare i record che iniziano, includono o terminano con una determinata lettera o frase.
Utilizzare il %
per rappresentare i caratteri jolly:
Esempio
Seleziona i record in cui l'indirizzo contiene la parola "way":
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)
Impedisci l'iniezione di SQL
Quando i valori della query vengono forniti dall'utente, è necessario eseguire l'escape dei valori.
Questo serve a prevenire le iniezioni SQL, che è una tecnica di hacking Web comune per distruggere o utilizzare in modo improprio il database.
Il modulo mysql.connector ha metodi per sfuggire ai valori delle query:
Esempio
Esci dai valori della query utilizzando il %s
metodo segnaposto:
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)