【问题标题】:How to delete an Item from an SQL table based on user entry?如何根据用户输入从 SQL 表中删除项目?
【发布时间】: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")

【问题讨论】:

    标签: python mysql python-sql


    【解决方案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 欢迎来到 stackoverflow,

      mycursor.execute(removeItem, (goneItem,))
      

      试试这个。

      您可以在文档中的here 中看到您需要包含一个逗号以使第二个参数成为一个元组。

      【讨论】:

      • 你好。感谢您的帮助!进行您建议的更改后,我仍然发现存在问题的错误,并会在错误中显示“项目名称”。我想问题的一部分是我使用双引号的方式,这导致了它的问题,所以不得不将查询更改为“查询”而不是“查询”。
      • 在更改 Python 字符串文字引号的过程中,我假设您删除了 %s? 周围的引号?这就是问题所在。
      猜你喜欢
      • 1970-01-01
      • 2017-02-10
      • 2022-11-19
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      相关资源
      最近更新 更多