Съгласно спецификацията на базата данни на Python в PEP 249
, форматът, използван в заявка, за да покаже къде да се вмъкнат параметрите, зависи от paramstyle
член на модула на базата данни:
- ако е
qmark
, използвайте?
(въпросителен знак) - ако е
numeric
, използвайте:1
,:2
и т.н. (числов, позиционен стил) - ако е
named
, използвайте:name
(наименуван стил) - ако е
format
, използвайте%s
(кодове на формат ANSI C printf) - ако е
pyformat
, използвайте%(name)s
(Кодове на разширен формат на Python)
AFAIR, MySQLdb използва format
, така че трябва да замените своя ?
с %s
.(Ако MySQLdb използва правилно подготвени изрази, това ще бъде qmark
и ?
беше правилният път.)