PyODBC: Ausführen einer Select-Anweisung mit einer Parametervariablen
In diesem Szenario möchten Sie Zeilen aus der Durchsatztabelle basierend auf a abrufen Spezifischer Gerätename, gespeichert in data['DeviceName']. Ihre vorherigen Versuche, die SELECT-Anweisung mit einer Parametervariablen auszuführen, waren jedoch erfolglos.
Die Lösung besteht darin, Parametrisierung in Ihrer SQL-Anweisung zu verwenden. Durch die Verwendung des „?“ Platzhalter und die Übergabe des DeviceName als Argument können Sie Ihr System vor SQL-Injection und anderen Sicherheitslücken schützen.
Hier ist ein überarbeiteter Ansatz:
cursor.execute("SELECT * FROM Throughput WHERE DeviceName = ?", data['DeviceName'])
Parametrierung bietet mehrere Vorteile:
Zusätzlich zur überarbeiteten Abfrage-Snippet, hier ist ein Teil eines funktionierenden Codebeispiels als Referenz:
query = "SELECT * FROM Throughput WHERE DeviceName = '%s'" % data['DeviceName'] try: for row in cursor.execute(query): ...
Denken Sie daran, Benutzereingaben zu validieren, unabhängig davon, ob Sie parametrisiertes oder dynamisches SQL verwenden, um die Sicherheit zu erhöhen.
Das obige ist der detaillierte Inhalt vonWie kann ich Parametervariablen in einer PyODBC SELECT-Anweisung sicher verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!