Я использую следующий фрагмент для вставки некоторых значений:
execute_values(
dest_cursor,
f'''
INSERT INTO {tName}({tColumns}) VALUES %s;
''',
records,
template=customTemplate,
)
Однако при чтении документов я обнаружил некоторые предупреждения об SQL-инъекциях, например здесь :
Предупреждение Никогда, никогда, НИКОГДА не используйте конкатенацию строк Python (+) или интерполяцию строковых параметров (%) для передачи переменных в строку запроса SQL. Даже под дулом пистолета.
Однако это невозможно (поскольку я не могу передать несколько параметров в execute_values
):
execute_values(
dest_cursor,
'INSERT INTO %s (%s) VALUES %s;',
(tName, tColumns, records),
template=customTemplate,
)
Есть ли способ улучшить это?