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