Heim > Datenbank > MySQL-Tutorial > Wie kann ich SQL SELECT-Anweisungen in Python mit pyodbc sicher parametrisieren?

Wie kann ich SQL SELECT-Anweisungen in Python mit pyodbc sicher parametrisieren?

DDD
Freigeben: 2025-01-03 12:58:38
Original
669 Leute haben es durchsucht

How to Safely Parameterize SQL SELECT Statements in Python with pyodbc?

Parametrierte Select-Anweisungen in Python mit pyodbc

Diese Frage beschreibt, wie eine SQL-SELECT-Anweisung unter Verwendung einer Variablen als Parameter in einer Schleife ausgeführt wird über eine Tabelle namens „Throughput“. Der spezifische verwendete Parameter variiert je nach „DeviceName“-Attribut der Zeile.

Erste Versuche

Anfangs versuchte der Benutzer den folgenden Code erfolglos:

for row in cursor.execute("SELECT * FROM Throughput WHERE DeviceName=%s", %(data['DeviceName'])):
Nach dem Login kopieren

Ein weiterer erfolgloser Versuch war:

for row in cursor.execute("SELECT * FROM Throughput WHERE(DeviceName), values(?)", (data['DeviceName']) ):
Nach dem Login kopieren

Endgültiger Arbeitscode

Letztendlich hat der Benutzer das Problem mit dem folgenden Snippet erfolgreich gelöst:

query = "SELECT * FROM Throughput WHERE DeviceName = '%s'" % data['Device Name']
try:
    for row in cursor.execute(query):
Nach dem Login kopieren

Parameterisierte Anweisungen

Der empfohlene Ansatz ist die Verwendung parametrisierter Anweisungen Anweisungen:

cursor.execute("SELECT * FROM Throughput WHERE DeviceName = ?", data['DeviceName'])
Nach dem Login kopieren

Dieser Ansatz bietet mehrere Vorteile gegenüber den vorherigen Versuchen:

  • Schutz vor SQL-Injection
  • Keine Notwendigkeit, where-Klauselwerte mit einfachen Anführungszeichen zu maskieren
  • Die SQL-Vorbereitung erfolgt nur einmal, wodurch die Leistung für nachfolgende Ausführungen verbessert wird

Das obige ist der detaillierte Inhalt vonWie kann ich SQL SELECT-Anweisungen in Python mit pyodbc sicher parametrisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage