@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
Этим проблемным словом всегда является что-то из удаляемой строки
И суть в том, что когда я сама боту вводила текст в чат, такой ошибки не было, а когда я в таблицу вручную ввела текст и попросила его удалить через бота, он тоже выдал такую ошибку
Пыталась убирать всё кроме букв, тоже не спасло. Уже не знаю, что делать...
  • Вопрос задан
  • 363 просмотра
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
В SQL обычно одинарные кавычки используются для строковых литералов.

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

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

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

Похожие вопросы
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект