Форум сайта python.su
Дорогие друзья!
Прошу подсказку.
Использую библиотеку psycopg2 для формирования запросов такого вот плана, как показано ниже.
Делаю контактацию и, естественно, получаю уязвимость
insert_sql_str = (f"INSERT INTO {data_tab_name} " f"(tag_name, date_of_data, {field_str}, write_date) " f"VALUES ('{tag_name}', '{shift_sys_time_str}', {val_str}, current_timestamp)") cursor.execute(insert_sql_str)
Отредактировано Begimot (Март 11, 2024 19:20:31)
Офлайн
Кое что уже нашел сам, но не хватает совсем чуть-чуть для полного счастья.
Я научился подставлять наименование ТАБЛИЦЫ и все параметры.
Осталось наименование ПОЛЯ (оно там одно).
Кто знает, как в эту конструкцию закинуть и наименование поля?
Спасибо!
cursor.execute( sql.SQL( "insert into {table} (tag_name, date_of_data, " + field_str + ", write_date)" "values (%s, %s, %s, current_timestamp)" ) .format(table=sql.Identifier(data_tab_name)), [tag_name, shift_sys_time_str, val_str] )
Офлайн
Нашел! Спасибо, что были со мной в трудную минуту!
cursor.execute( sql.SQL( "insert into {table} (tag_name, date_of_data, {field}, write_date)" "values (%s, %s, %s, current_timestamp)" ) .format(table=sql.Identifier(data_tab_name), field=sql.Identifier(field_str)), [tag_name, shift_sys_time_str, val_str] )
Офлайн