Zgodnie ze specyfikacją bazy danych Pythona w PEP 249
, format użyty w zapytaniu, aby pokazać, gdzie należy wstawić parametry, zależy od paramstyle członek modułu bazy danych:
- jeśli jest to
qmark, użyj?(znak zapytania) - jeśli jest
numeric, użyj:1,:2itp. (numeryczne, styl pozycyjny) - jeśli jest
named, użyj:name(nazwany styl) - jeśli jest to
format, użyj%s(Kody formatu ANSI C printf) - jeśli jest to
pyformat, użyj%(name)s(Kody rozszerzonego formatu Pythona)
AFAIR, MySQLdb używa format , więc powinieneś zastąpić swój ? z %s .(Gdyby MySQLdb poprawnie używała przygotowanych instrukcji, byłoby to qmark i ? była właściwą drogą.)