Enligt Python Database Specification i PEP 249
, formatet som används i en fråga för att visa var parametrarna ska infogas beror på paramstyle
medlem av databasmodulen:
- om det är
qmark
, använd?
(frågetecken) - om det är
numeric
, använd:1
,:2
etc. (numerisk, positionell stil) - om den har
named
, använd:name
(namngiven stil) - om det är
format
, använd%s
(ANSI C printf-formatkoder) - om det är
pyformat
, använd%(name)s
(Python utökade formatkoder)
AFAIR, MySQLdb använder format
, så du bör byta ut din ?
med %s
.(Om MySQLdb skulle använda förberedda satser korrekt, skulle det vara qmark
och ?
var rätt väg att gå.)