@yoyoyoyoYOO

Sqlite3.OperationalError: near "слово": syntax error?

Для телеграм бота подключила sqlite. Пользователь может отложить предложенную книгу и она сохранится в бд, после он может запросить список отложенных книг и попросить удалить какую-то оттуда. У меня это прописано так:
def deleting_book(message):
    ids = message.from_user.id
    delete = message.text
    sqlite_connection = sqlite3.connect('name.db')
    cursor = sqlite_connection.cursor()
    deleting = cursor.execute('DELETE from books WHERE us_books ="{delete}" AND user_id = {ids}')
    sqlite_connection.commit()
    cursor.close()

На выходе получаю ошибку: Sqlite3.OperationalError: near "слово": syntax error
Этим проблемным словом всегда является что-то из удаляемой строки
И суть в том, что когда я сама боту вводила текст в чат, такой ошибки не было, а когда я в таблицу вручную ввела текст и попросила его удалить через бота, он тоже выдал такую ошибку
Пыталась убирать всё кроме букв, тоже не спасло. Уже не знаю, что делать...
  • Вопрос задан
  • 328 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
В SQL обычно одинарные кавычки используются для строковых литералов.

DELETE from books WHERE us_books = 'слово' .....

Двойные там для других задач. Например для приведения идентификаторов к CASE-sensitive виду.- Типа "MyTable"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
17 мая 2024, в 22:37
20000 руб./за проект
17 мая 2024, в 22:33
1000 руб./за проект
17 мая 2024, в 22:30
5000 руб./за проект