Heim > Datenbank > MySQL-Tutorial > Wie führe ich eine parametrisierte SQL-Abfrage aus, die in einer Variablen in Python gespeichert ist?

Wie führe ich eine parametrisierte SQL-Abfrage aus, die in einer Variablen in Python gespeichert ist?

DDD
Freigeben: 2025-01-12 06:49:43
Original
896 Leute haben es durchsucht

How to Execute a Parameterized SQL Query Stored in a Variable in Python?

Führen Sie parametrisierte SQL-Abfragen aus, die in Variablen in Python gespeichert sind

Beim Umgang mit SQL-Abfragen in Python ist es wichtig, parametrisierte Abfragen zu verwenden, um SQL-Injection zu verhindern. Dabei werden Parameterplatzhalter (z. B. „%s“) durch Variablen ersetzt, die tatsächliche Werte enthalten.

Eine häufig gestellte Frage ist, ob es möglich ist, eine parametrisierte SQL-Abfrage in einer Variablen zu speichern und diese dann auszuführen. Lassen Sie uns die Syntax untersuchen und wie Sie dies erreichen.

Frage

Betrachten Sie den folgenden Python-Code:

<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3
cursor.execute(sql)</code>
Nach dem Login kopieren

Leider löst dieser Code einen Fehler aus, da cursor.execute() bis zu drei Parameter akzeptiert: Abfragezeichenfolge und optionale Parameter. In diesem Beispiel haben wir vier Parameter, dargestellt durch das Tupel (sql, var1, var2, var3).

Lösung

Es gibt zwei Möglichkeiten, parametrisierte SQL-Abfragen von Variablen auszuführen:

Methode 1: Parameter erweitern

Wir können die Parameter des Tupels, das die Abfrage und die Parameter enthält, zu cursor.execute() erweitern:

<code class="language-python">sql_and_params = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3
cursor.execute(*sql_and_params)</code>
Nach dem Login kopieren

Dadurch wird das Tupel auf vier Parameter erweitert, aber das mag umständlich erscheinen.

Methode 2: Abfrage und Parameter trennen

Aus Gründen der Übersichtlichkeit ist es am besten, die SQL-Abfrage und die Parameter in zwei Variablen aufzuteilen:

<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)"
args = (var1, var2, var3)
cursor.execute(sql, args)</code>
Nach dem Login kopieren

Dieser Ansatz ist prägnanter und einfacher zu lesen und zu pflegen.

Fazit

Zusammenfassend lässt sich sagen, dass Sie beim Ausführen einer parametrisierten SQL-Abfrage aus Variablen in Python die Parameter erweitern oder die Abfrage und Parameter in verschiedene Variablen aufteilen müssen. Die zweite Methode wird normalerweise empfohlen, da sie einfacher und unkomplizierter ist.

Das obige ist der detaillierte Inhalt vonWie führe ich eine parametrisierte SQL-Abfrage aus, die in einer Variablen in Python gespeichert ist?. 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