如何根据用户输入从 SQL table 中删除项目?

How to delete an Item from an SQL table based on user entry?

我正在尝试在 MySQL 数据库中存储商品、网址和价格,并希望为用户提供根据名称删除商品的选项。我正在尝试通过使用 DELETE sql 语句来做到这一点,但它只是 returns“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")

尝试删除 %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")

嗨 LearningCode 欢迎来到 Whosebug,

mycursor.execute(removeItem, (goneItem,))

试试这个。

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