Zeichen escapen in MySQLdb
Verfasst: Donnerstag 28. Februar 2008, 15:20
Hallo,
ich habe eine Frage zur Verwendung des MySQLdb-Moduls. Ich würde gern dynamisch Werte in eine MySQL-Abfrage mit ".execute" einfügen.
tabelle = "Namen"
suchwort = "Heinz"
cursor.execute ("SELECT * FROM %s WHERE name LIKE %s", (tabelle, suchwort))
Wenn ich es so tue, wie angedeutet, werden sowohl "tabelle" als auch "suchwort" mit ' eingefasst, d.h. die erzeugte SQL-Abfrage lautet
"SELECT * FROM 'Namen' WHERE name LIKE 'Heinz'"
Diese Abfrage ist fehlerhaft, weil der Wert für FROM nicht in Hochkommata stehen darf. Weiss jemand eine Lösung für dieses Problem?
Die andere Sache wäre, dass ich immer ein % an den string "suchwort" anhängen will. Gibts einen Weg, dass in .execute zu machen oder sollte ich vorher den String ändern?
Viele Grüße,
Stephan
ich habe eine Frage zur Verwendung des MySQLdb-Moduls. Ich würde gern dynamisch Werte in eine MySQL-Abfrage mit ".execute" einfügen.
tabelle = "Namen"
suchwort = "Heinz"
cursor.execute ("SELECT * FROM %s WHERE name LIKE %s", (tabelle, suchwort))
Wenn ich es so tue, wie angedeutet, werden sowohl "tabelle" als auch "suchwort" mit ' eingefasst, d.h. die erzeugte SQL-Abfrage lautet
"SELECT * FROM 'Namen' WHERE name LIKE 'Heinz'"
Diese Abfrage ist fehlerhaft, weil der Wert für FROM nicht in Hochkommata stehen darf. Weiss jemand eine Lösung für dieses Problem?
Die andere Sache wäre, dass ich immer ein % an den string "suchwort" anhängen will. Gibts einen Weg, dass in .execute zu machen oder sollte ich vorher den String ändern?
Viele Grüße,
Stephan