Я изо всех сил пытаюсь решить эту проблему с выполнением sql в моем приложении python для фляги.
Я пытаюсь выполнить подобную функцию с переменной, которую я получаю из моих запросов на получение.
например, я пробовал это еще:
rows = cursor.execute(f"SELECT * FROM vragen WHERE vraag LIKE ':text'",
{"text": '%' + query + '%'}).fetchall()
но это, к сожалению, дает мне пустой массив.
Это дает мне данные, но тогда я не использую переменную, которая мне нужна в этом случае.
rows = cursor.execute(f"SELECT * FROM vragen WHERE vraag LIKE '%which%'").fetchall()
Кто-нибудь знает простой способ решить эту проблему?
Спасибо за аванс
Формат f-строк Python — f"This is an f-string {var_name} and {var_name}."
. Вы также должны быть очень осторожны с f-строками, входящими непосредственно в SQL-запросы, как указывает этот ответ
У вас не должно быть кавычек вокруг :text
:
rows = cursor.execute(f"SELECT * FROM vragen WHERE vraag LIKE :text",
{"text": '%' + query + '%'}).fetchall()
Обратите внимание, что вы выбираете, а не вставляете.