Python MySQL Var

Använd filter för att välja

När du väljer poster från en tabell kan du använda "WHERE"-satsen för att filtrera urvalet:

Exempel

Välj poster där adressen är "Park Lane 38", resultat:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "Välj alla rader från tabellen customers" WHERE address ='Park Lane 38'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Kör Exempel

Jokertecken

Du kan också välja poster som börjar med, innehåller eller slutar med en given bokstav eller fras.

Använd % Betecknar jokertecken:

Exempel

Välj poster där adressen innehåller ordet "way":

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "Välj alla rader från tabellen customers där adressen liknar '%way%"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Kör Exempel

Förhindra SQL-injektion

När användare anger sökvärden, bör du escapera dessa värden.

Detta är för att förhindra SQL-injektion, en vanlig nätverkshackareteknik som kan skada eller missbruka din databas.

mysql.connector-modulen har metoder för att escapera sökvärden:

Exempel

Använd metoden med placeholder %s för att escapera sökvärden:

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)

Kör Exempel