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.