Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:python_mysql

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
python:python_mysql [2013/10/29 11:58] jenadpython:python_mysql [2024/08/07 13:39] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 14: Zeile 14:
  
  
-immer wieder ein Grund zum Verzweifeln, was bedeuten diese zwei Möglichkeiten der Übergabe von Variablen an einen SQL-Befehl: 
  
-<code python>  
-table="foobar" 
-cursor.execute(""" 
-          select * from %s where blabla = 'S'""", 
-          (table,)) 
-</code> 
- 
-funzt nicht, aber dieses hier: 
- 
-<code python> 
-table="foobar" 
-cursor.execute(""" 
-          select * from %s where blabla = 'S'""" % 
-          table) 
-</code> 
- 
-Hier meine Erklärung: 
- 
-Der Komma-Operator als Teil der execute-Methode wandelt automatisch übergebene Variablen (als Tupel) in SQL-konforme Werte, aus "foobar" wird also 'foobar', und eine 34 bleibt eine 34, wenn die Variable ein Integer ist. 
- 
-Aus "foobar" wird also 'foobar', und  
- 
-<code sql> 
-SELECT * from 'foobar' 
-</code> 
- 
-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="foobar" 
-blabla="einText" 
-nummer=34 
-cursor.execute(""" 
-          select * from """ + table + """ where blabla = %s and nummer = %s""", 
-          (blabla,nummer)) 
-</code> 
- 
-Es wird dabei IMMER der Operator %s benutzt, also auch bei Integer. 
  
 <note important>SQL-Parameter sollten immer als Tupel an die execute-methode übergeben werden, und nicht als zusammengesetzter String!</note> <note important>SQL-Parameter sollten immer als Tupel an die execute-methode übergeben werden, und nicht als zusammengesetzter String!</note>
  
python/python_mysql.1383044329.txt.gz · Zuletzt geändert: 2024/08/07 13:35 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki