如何从表中删除一条记录?

新手上路,请多包涵

我在从我的 SQLite3 数据库中删除记录时遇到问题:

 conn = sqlite3.connect('databaza.db')
c = conn.cursor()
data3 = str(input('Please enter name: '))
mydata = c.execute('DELETE FROM Zoznam WHERE Name=?', (data3,))
conn.commit()
c.close

一切正常,没有错误,但是删除功能不起作用!

有人有想法吗?

原文由 Risino 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 457
2 个回答

感谢所有试图提供帮助的人。正确的代码是:

 conn = sqlite3.connect('databaza.db')
c = conn.cursor()
conn.text_factory = str
data3 = str(input('Please enter name: '))
query = "DELETE FROM Zoznam WHERE Name = '%s';" % data3.strip()
print(query)
mydata = c.execute(query)

原文由 Risino 发布,翻译遵循 CC BY-SA 2.5 许可协议

参数化 查询的正确语法是:

 mydata = c.execute("DELETE FROM Zoznam WHERE Name=?", (data3,))

确保参数使用逗号,使其成为 python 元组。

这将有助于防止在传递格式化字符串时可能发生的 SQL 注入。有关 SQL 注入的更多信息,请 点击此处

相关帖子 在这里

原文由 Cameron Gagnon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题