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'])):
Ein weiterer erfolgloser Versuch war:
for row in cursor.execute("SELECT * FROM Throughput WHERE(DeviceName), values(?)", (data['DeviceName']) ):
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):
Parameterisierte Anweisungen
Der empfohlene Ansatz ist die Verwendung parametrisierter Anweisungen Anweisungen:
cursor.execute("SELECT * FROM Throughput WHERE DeviceName = ?", data['DeviceName'])
Dieser Ansatz bietet mehrere Vorteile gegenüber den vorherigen Versuchen:
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!