Как удалить запись из SQLite, используя «имя», например, вместо идентификатора? - PullRequest
0 голосов
/ 03 марта 2020

У меня есть код ниже, который удаляет записи из базы данных, используя «email_address», когда я использую Id, он удаляется нормально, но когда я переключаю его на «email_address», он дает мне sqlite3.OperationalError. У меня есть поле ввода, в котором хранятся данные, которые будут удалены и передаются ниже как «email_delete». Кто-нибудь знает как это исправить? Это ссылка на изображение с сообщением об ошибке

def removeEmail():
conn = sqlite3.connect("email.db")
c = conn.cursor()
if c.execute("DELETE from email WHERE email_address =(?)" + email_delete.get()):
    deleted_email = Label(
        root, text="You have been Unsubscribed from the mailing list"
    )
    deleted_email.grid(row=5, column=0)
else:
    error_label = Label(root, text="There is no such record")
    error_label.grid(row=5, column=0)

email_delete.delete(0, END)
conn.commit()
conn.close()

1 Ответ

1 голос
/ 03 марта 2020

Вам нужно передать значения, которые заменит заполнители в вашем запросе в качестве второго аргумента, c.execute(...) вместо их объединения вместе со строкой запроса:

Вместо

c.execute("DELETE from email WHERE email_address =(?)" + email_delete.get())

до

c.execute("DELETE from email WHERE email_address=?", (email_delete.get(),))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...