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 11:16] – jenad | python:python_mysql [2024/08/07 13: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: 2024/08/07 13:35 (Externe Bearbeitung)