@yuckemsi

Что не так с sql запросом?

ошибка: cur.execute(f'INSERT INTO posts(tg_id, caption) VALUES({tg_id}, {caption})')
sqlite3.OperationalError: no such column: v5huuJVRjuMVJMUVRujmV

функция заносит данные в бд, которые передаются из телеграм бота. понимаю, что проблема в запросе, но искренне не понимаю в чем конкретно

async def create_post(tg_id: int, caption: str, media_id=''):
    if not media_id:
        cur.execute(f'INSERT INTO posts(tg_id, caption) VALUES({tg_id}, {caption})')
    else:
        cur.execute('INSERT INTO posts(tg_id, media_id, caption) VALUES(?, ?, ?)', (tg_id, media_id, caption))
    db.commit()
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
Использование f-строк для вставки данных в SQL запросы может привести к уязвимостям, связанным с SQL-инъекциями. Вместо использования f-строк, рекомендуется применять параметризованные запросы или подготовленные выражения, что позволяет безопасно передавать данные в запросы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы