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,:2etc. (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å.)