sql >> Database >  >> RDS >> Mysql

Python:best practice en veiligste manier om verbinding te maken met MySQL en query's uit te voeren

Gebruik execute . om injecties te vermijden met %s in plaats van elke variabele, geef dan de waarde door via een lijst of tuple als de tweede parameter van execute . Hier is een voorbeeld uit de documentatie :

c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""", (max_price,))

Merk op dat dit een komma . gebruikt , niet % (wat een directe tekenreeksvervanging zou zijn, niet een escaped). Doe dit niet :

c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""" % (max_price,))

Bovendien mag u geen enkele aanhalingstekens gebruiken rond de positiehouder ('%s' ) als de parameter een string is zoals het stuurprogramma deze verstrekt.



  1. Top 10 redenen om Access en Excel samen te gebruiken

  2. Fix "datum is incompatibel met int" in SQL Server bij toevoegen aan of aftrekken van een datum

  3. Hoe in te voegen in een array in PostgreSQL

  4. Een overzicht van het seriële pseudo-datatype voor PostgreSQL