Съгласно спецификацията на базата данни на 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 и ? беше правилният път.)