Secondo la specifica del database Python in PEP 249
, il formato utilizzato in una query per mostrare dove inserire i parametri dipende da paramstyle
membro del modulo database:
- se è
qmark
, usa?
(punto interrogativo) - se è
numeric
, usa:1
,:2
ecc. (stile numerico, posizionale) - se è
named
, usa:name
(stile con nome) - se è
format
, usa%s
(codici formato ANSI C printf) - se è
pyformat
, usa%(name)s
(Codici formato esteso Python)
AFAIR, MySQLdb usa il format
, quindi dovresti sostituire il tuo ?
con %s
.(Se MySQLdb utilizzasse correttamente le istruzioni preparate, sarebbe qmark
e ?
era la strada giusta.)