SQLite3代码动态插入要删除的行数据的列值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite3代码动态插入要删除的行数据的列值相关的知识,希望对你有一定的参考价值。

我使用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

如果能获得关于如何最好地做到这一点的解释或描述,我将非常高兴。谢谢

答案

不要在查询字符串中连接用户输入-这会使您的代码接受SQL注入。

相反,使用参数化查询:

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

以上是关于SQLite3代码动态插入要删除的行数据的列值的主要内容,如果未能解决你的问题,请参考以下文章

根据第三个表中的列值删除表中的行

根据另一个表中的列值选择一个表中的行?

删除 NaN 和列值更改之间的行

如何根据数据框中的列值获取特定的行数[重复]

LINQ 2 DB 动态插入表

IBExpert 插入变量给定的列值