如何根据用户输入从 SQL 表中删除项目?
Posted
技术标签:
【中文标题】如何根据用户输入从 SQL 表中删除项目?【英文标题】:How to delete an Item from an SQL table based on user entry? 【发布时间】:2020-05-27 19:36:41 【问题描述】:我正在尝试在 mysql 数据库中存储商品、网址和价格,并希望为用户提供基于名称删除商品的选项。我试图通过使用 DELETE sql 语句来做到这一点,但它只返回“0 item removed”,我猜它无法找到条目,无论是它没有接受输入还是什么。任何帮助将不胜感激,因为我真的很想掌握这个!
def deleteItem():
goneItem = input("Enter item: ")
removeItem = "DELETE FROM amazon_items WHERE itemName = '%s'"
mycursor.execute(removeItem, goneItem)
db.commit()
print(mycursor.rowcount, "item removed")
【问题讨论】:
【参考方案1】:尝试删除 %s
周围的单引号,您应该将 %s
的值作为元组传递
def deleteItem():
goneItem = input("Enter item: ")
removeItem = "DELETE FROM amazon_items WHERE itemName = %s"
mycursor.execute(removeItem, (goneItem,))
db.commit()
print(mycursor.rowcount, "item removed")
【讨论】:
【参考方案2】:Hi LearningCode 欢迎来到 ***,
mycursor.execute(removeItem, (goneItem,))
试试这个。
您可以在文档中的here 中看到您需要包含一个逗号以使第二个参数成为一个元组。
【讨论】:
你好。感谢您的帮助!进行您建议的更改后,我仍然发现存在问题的错误,并会在错误中显示“项目名称”。我想问题的一部分是我使用双引号的方式,这导致了它的问题,所以不得不将查询更改为“查询”而不是“查询”。 在更改 Python 字符串文字引号的过程中,我假设您删除了%s
? 周围的引号?这就是问题所在。以上是关于如何根据用户输入从 SQL 表中删除项目?的主要内容,如果未能解决你的问题,请参考以下文章
使用 JDBC 根据用户输入从 SQL 数据库中检索数据? [复制]
如何在搜索数组时修复盲目 SQL 注入,该注入可能会根据用户输入而改变
如何使用 PHP、SQL 和 Microsoft Access 将另一个表中的 select max 函数和用户输入的变量插入表中?