Синтаксис ?
предназначен только для значения привязки для защиты от атак внедрения ( пример ).
Если вы собираетесь использовать пользовательский ввод для левой стороны =
, вы должны убедиться, что его санируйте самостоятельно. Для динамического генерирования операторов будет работать любой метод строки Python,
но ты действительно не должен этого делать.
Лучше было бы иметь словарь пар {key:sql_str}
call_dict = {'col_name':'UPDATE data_base SET col_name=? WHERE atnumber=?'}
self.qry.execute(call_dict[key],(value,self.testac))
[редактировать, исправлена опечатка]