python:python_mysql
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| python:python_mysql [2013/04/26 09:16] – jenad | python:python_mysql [2024/08/07 11:39] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | == allgemeine Syntax == | + | ==== allgemeine Syntax |
| <code python> | <code python> | ||
| Zeile 10: | Zeile 10: | ||
| </ | </ | ||
| - | == MySQLdb: übergabe von parametern an cursor.execute() == | + | ==== MySQLdb: übergabe von parametern an cursor.execute() |
| - | immer wieder ein Grund zum Verzweifeln, | ||
| - | <code python> | ||
| - | table=" | ||
| - | cursor.execute(""" | ||
| - | select * from %s where blabla = ' | ||
| - | (table,)) | ||
| - | </ | ||
| - | funzt nicht, aber dieses hier: | ||
| - | <code python> | ||
| - | table=" | ||
| - | cursor.execute(""" | ||
| - | select * from %s where blabla = ' | ||
| - | table) | ||
| - | </ | ||
| - | |||
| - | Hier meine Erklärung: | ||
| - | |||
| - | Der Komma-Operator als Teil der execute-Methode wandelt automatisch übergebene Variablen (als Tupel) in SQL-konforme Werte, aus " | ||
| - | |||
| - | Aus " | ||
| - | |||
| - | <code sql> | ||
| - | SELECT * from ' | ||
| - | </ | ||
| - | |||
| - | ist eben ein ungültiger SQL-Befehl (Tabellenname in einfachen Hochkommas). | ||
| - | |||
| - | Wenn man also auch den Tabellennamen als Variable übergeben möchte, muß man sich mit einem verketteten String aushelfen: | ||
| - | |||
| - | <code python> | ||
| - | table=" | ||
| - | blabla=" | ||
| - | nummer=34 | ||
| - | cursor.execute(""" | ||
| - | select * from """ | ||
| - | (blabla, | ||
| - | </ | ||
| - | Es wird dabei IMMER der Operator %s benutzt, also auch bei Integer. | + | <note important> |
python/python_mysql.1366967813.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
