Используя Python3 и синтаксис
cursor.execute(sql, {key1: val1, key2: val2})
, я хочу выполнить безопасный (SQL-защищенный) запрос, такой как:
SELECT * FROM `table`
WHERE
a = %(fieldA)s AND b IN (%(fieldB)s)
В основном я ищуответ на этот вопрос но с синтаксисом Python3 и использованием нескольких полей.
Если я использую ответ @ nosklo :
format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings,
tuple(list_of_ids))
1) Как реализовать этот синтаксис двойного форматирования (format_strings, tuple(list_of_ids))
) с использованием синтаксиса словаря:
cursor.execute(sql, {'field': 'val'})
2) и как мне реализовать это в моем случае, когда у меня есть несколько полей:
cursor.execute(sql, {'x': 'myList', 'y':myOtherVar'})
?