Bei der Verarbeitung von Datenbankabfragen in Python müssen Sie normalerweise Variablen in die Anweisung Abfrage aufnehmen. Achten Sie jedoch darauf, dass Syntaxfehler oder Sicherheitslücken verhindert werden.
Betrachten Sie den folgenden Python -Code:
cursor.execute("INSERT INTO table VALUES var1, var2, var3")
In diesem Code ist var1
eine Ganzzahl, var2
und var3
sind Zeichenfolgen. Wenn Python jedoch versucht, die Namen var1
, var2
und var3
als Teil des Abfragetextes selbst zu Problemen zu geben, entstehen Probleme, was zur Abfragegültigerklärung resultiert.
Um dieses Problem zu lösen, können Sie den von der Datenbank -API bereitgestellten Platzhalterersatzmechanismus verwenden. So schreiben Sie den Code mit Platzhaltern um:
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
In diesem verbesserten Code:
%s
repräsentiert einen Platzhalter, der den Wert ausfüllt. (var1, var2, var3)
ist ein Tupel, das den zugefügten Wert enthält. Durch die Übergabe von Werten als Tupel verarbeitet die Datenbank -API die erforderlichen variablen Flucht und Referenzen, um die Datenbankkompatibilität zu gewährleisten und potenzielle Sicherheitsrisiken zu verhindern.
Beachten Sie, dass für einen einzelnen Parameter ein Tupel mit nachlaufenden Kommas erforderlich ist:
cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
Vermeiden Sie zusätzlich, dass Sie den String -Formatierungsoperator (%) verwenden, um Variablen einzufügen, da dies Sicherheitslücken verursachen kann, und die Datenbank -API unterstützt es nicht.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3