Почему передача имени столбца в качестве параметра в PyMySQL не работаетMySql

Форум по Mysql
Ответить
Anonymous
 Почему передача имени столбца в качестве параметра в PyMySQL не работает

Сообщение Anonymous »

У меня есть функция оповещения, написанная на Python 3.12 с использованием библиотеки PyMySQL (1.1.2), для взаимодействия с базой данных AWS Aurora (MySQL), которая извлекает оповещения из базы данных.
Я всегда использую параметризованные запросы в своих запросах, но в этом случае необычно то, что я передаю имя столбца в качестве параметра:

Код: Выделить всё

cursor.execute("SELECT alert_name FROM alerts WHERE org_id = %s AND %s = 1", (org_id ,trigger_column))
Это не выдает ошибки, но не находит записи, которые, как я знаю, там есть.
Если я заменяю ее готовой строкой, все работает нормально (передаются те же значения):

Код: Выделить всё

querysql = f"SELECT alert_name FROM alerts WHERE org_id = {org_id } AND {trigger_column} = 1"
cursor.execute(querysql)
Я был уверен, что это работало раньше, но, возможно, нет, есть ли у кого-нибудь опыт передачи столбцов в качестве параметров, а не значений?
Для меня безопасно использовать первый вариант, поскольку ни одно из значений не поступает от пользовательского ввода (даже косвенно), но я предпочитаю быть последовательным.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»