Ifølge Python Database Specification i PEP 249
, formatet, der bruges i en forespørgsel til at vise, hvor parametrene skal indsættes, afhænger af paramstyle
medlem af databasemodulet:
- hvis det er
qmark
, brug?
(spørgsmålstegn) - hvis det er
numeric
, brug:1
,:2
osv. (numerisk, positionel stil) - hvis det er
named
, brug:name
(navngivet stil) - hvis det er
format
, brug%s
(ANSI C printf-formatkoder) - hvis det er
pyformat
, brug%(name)s
(Python-udvidede formatkoder)
AFAIR, MySQLdb bruger format
, så du bør erstatte din ?
med %s
.(Hvis MySQLdb ville bruge forberedte sætninger korrekt, ville det være qmark
og ?
var den rigtige vej at gå.)