Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Python:Best Practice und sicherster Weg, um eine Verbindung zu MySQL herzustellen und Abfragen auszuführen

Verwenden Sie execute, um Injektionen zu vermeiden mit %s anstelle jeder Variablen übergeben Sie dann den Wert über eine Liste oder ein Tupel als zweiten Parameter von execute . Hier ist ein Beispiel aus der Dokumentation :

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

Beachten Sie, dass hier ein Komma verwendet wird , nicht % (was eine direkte Zeichenfolgensubstitution wäre, nicht maskiert). Tu das nicht :

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

Außerdem dürfen Sie keine einfachen Anführungszeichen um den Positionsinhaber herum verwenden ('%s' ), wenn der Parameter eine Zeichenfolge ist, da der Treiber diese bereitstellt.