Gemäß der Python-Datenbankspezifikation in PEP 249
, hängt das Format, das in einer Abfrage verwendet wird, um anzuzeigen, wo die Parameter eingefügt werden sollen, vom paramstyle
ab Mitglied des Datenbankmoduls:
- wenn es
qmark
ist , verwenden Sie?
(Fragezeichen) - wenn es
numeric
ist , verwenden Sie:1
,:2
usw. (numerisch, Positionsstil) - wenn es
named
ist , verwenden Sie:name
(benannter Stil) - wenn es
format
ist , verwenden Sie%s
(ANSI C printf-Formatcodes) - wenn es
pyformat
ist , verwenden Sie%(name)s
(Erweiterte Python-Formatcodes)
AFAIR, MySQLdb verwendet format
, also sollten Sie Ihr ?
ersetzen mit %s
.(Wenn MySQLdb vorbereitete Anweisungen korrekt verwenden würde, wäre es qmark
und ?
war der richtige Weg.)