Код SQLite3 для динамической вставки значения столбца данных строки для удаления - PullRequest
1 голос
/ 25 мая 2020

Я использую Python + SQLite для кодирования. Я пытался создать блок, в котором пользователь может ввести значение столбца для удаления данных соответствующей строки в базе данных SQLite3.

Практически, приведенный ниже фрагмент кода работает, но мне придется вводить все адреса электронной почты вручную . Я хочу динамически вставить электронное письмо для этой строки кода SQLite, чтобы удалить соответствующие записи

DELETE FROM Records WHERE email = 'xyz@xyz.com'

Я пробовал следующее:

entered_email = input('enter email: ')
string = f" 'DELETE FROM Records WHERE email = '{entered_email}'"
c.execute(string)

Это не работает. Я получаю строку с ошибкой ниже

sqlite3.OperationalError: near "'DELETE FROM Records WHERE email = '": syntax error

Я буду очень рад, если я смогу получить объяснение или описание того, как лучше go об этом. спасибо

1 Ответ

0 голосов
/ 25 мая 2020

Не объединяйте вводимые пользователем данные в строку запроса - это расширяет ваш код до SQL инъекции.

Вместо этого используйте параметризованный запрос:

entered_email = input('enter email: ')
c.execute('DELETE FROM Records WHERE email =  ?', (entered_email, ))
...