我使用python + SQLite进行编码。我一直在尝试创建一个块,用户可以在其中输入列值以删除SQLite3数据库中的相应行数据。
实际上,下面的代码段有效,但是我必须手动输入所有电子邮件地址。我想为该SQLite代码行动态插入电子邮件,以便删除相应的记录
DELETE FROM Records WHERE email = '[email protected]'
我尝试了以下;
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
如果能获得关于如何最好地做到这一点的解释或描述,我将非常高兴。谢谢
不要在查询字符串中连接用户输入-这会使您的代码接受SQL注入。
相反,使用参数化查询:
entered_email = input('enter email: ')
c.execute('DELETE FROM Records WHERE email = ?', (entered_email, ))