Мне интересно, как безопасно параметризовать динамический запрос mysql в python. По динамике я имею в виду, что он изменяется в зависимости от того, как оцениваются утверждения if.Как безопасно параметризовать динамический запрос mysql python?
Я понимаю, как параметризовать mysql-запрос в python, используя запятую, а не знак процента, как показано ниже.
c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2))
Вот пример «динамического запроса». Я ищу, чтобы найти более безопасный способ, чем использовать знак процента.
def queryPhotos(self, added_from, added, added_to):
sql = "select * from photos where 1=1 "
if added_from is not None:
sql = sql + "and added >= '%s' " % added_from
if added is not None:
sql = sql + "and added = '%s' " % added
if added_to is not None:
sql = sql + "and added <= '%s' " % added_to
Благодарим вас за понимание.
собрать строку запроса sql с вопросительными знаками i.e. 'query = 'select * from table where thing =? и otherthing =? '", затем выполните что-то в строках' c.execute (query, [param1.param2]) – Nullman