Where in MySQL in Python

使用筛选器来选取

从表中选择记录时,可以使用 "WHERE" 语句对选择进行筛选:

Esempio

选择 "Park Lane 38" 的记录,结果:

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()
per x in myresult:
  print(x)

Eseguire Esempio

通配符

您也可以选择以给定字母或短语开头、包含或结束的记录。

请使用 表示通配符:

Esempio

选择包含单词 "way" 的地址记录:

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()
per x in myresult:
  print(x)

Eseguire Esempio

Prevenire SQL Injection

Quando l'utente fornisce valori di ricerca, dovresti evitare di interpretarli.

Questo è fatto per prevenire gli attacchi SQL Injection, una tecnica Hacker comune che può danneggiare o abusare del tuo database.

Il modulo mysql.connector ha metodi per evitare di interpretare i valori di ricerca:

Esempio

Usare il metodo di sostituzione dei segnaposto %s per evitare di interpretare i valori di ricerca:

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 = ("Giardino Giallo 2", )
mycursor.execute(sql, adr)
myresult = mycursor.fetchall()
per x in myresult:
  print(x)

Eseguire Esempio