Как удалить строку в sqlite которую задаю переменной
интересует как можно удалить именно ту строку, которую я сам задам переменной?
Это мой неверный код
a = input()
cur.execute("DELETE FROM users WHERE user_name=a;")
conn.commit()
Думал можно сделать вот таким способом, но данные я ввожу, а он все равно не удаляет
a = input()
cur.execute("DELETE FROM users WHERE user_id= '{a}'")
conn.commit()
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
Тому, что Ваш код не работет есть две причины:
Первая:
# В этом варианте ошибка состоит в том, что вы забыли сделать строку форматируемой
a = input()
cur.execute(f"DELETE FROM users WHERE user_id= '{a}'")
# ^^
conn.commit()
В вашем варианте получается, что имя пользователя =
{a}, а я сомневаюсь, что пользователь с таким именем есть у Вас в БД
Вторая:
# Так как делаете Вы, делать вообще не рекомендуется.
# Правильно будет так:
a = input()
cur.execute("DELETE FROM users WHERE user_id = ?", [a])
conn.commit()