假设我有一个数据库,它可以像下面这样添加值:
def information(cursor):
a = input("Please define a 'a':")
b = input("Please define a b:")
c = input("Please define a c:")
d = input("Please define a d:")
statement=f'INSERT INTO data VALUES ({a}, "{b}", "{c}", "{d}");'
cursor.execute(statement)
cursor.close()如果值已经在表中,我如何获得一条好消息。
发布于 2021-01-26 08:38:27
我必须说,我并不完全熟悉Python,尤其是它的SQLite驱动程序是如何工作的。
但解决方案的要点是有条件地插入,然后获取插入了多少行。在许多SQL实现中,我们可以做类似SELECT @@ROWCOUNT的事情,但我不认为这在SQLite中有效。
但我认为这是可行的,这取决于插入没有唯一的键:
INSERT OR IGNORE INTO data VALUES ({a}, "{b}", "{c}", "{d}");然后使用以下命令获取行数:
cursor.rowcount因此,我们可以使用该结果来检查发生了什么。如果为零,则插入失败。
顺便说一句,我认为您当前的实现容易受到注入攻击。您应该在准备好的查询中使用参数。
https://stackoverflow.com/questions/65894119
复制相似问题