我在通过用户输入更新表中已有的值时遇到了一些麻烦。当我运行程序时,它会打印出一条语句,说明该项目已成功更新,但不会更改任何值。任何帮助都将是非常有用的,因为我的代码似乎没有任何错误,并且我在此问题上停留了一段时间。
elif option == "4":
sqlite3.connect('program.db')
inp_ID = int(input("Enter the ID of the item you want to update: "))
itemName = input("Enter New Item Name: ")
itemPrice = input("Enter the items price: ")
itemStock = input("Enter the stock amount of the item: ")
itemDescription = input("Enter a description for the item: ")
updateSQL = "UPDATE items SET itemName = ?, itemPrice = ?, itemStock = ?, itemDescription = ? WHERE " \
"itemID = ? "
conn.execute(updateSQL, (inp_ID, itemName, itemPrice, itemStock, itemDescription))
conn.commit()
print("Item " + itemName + " has been updated.")
您传递给的参数execute
顺序不正确,因此没有行匹配。
conn.execute(
"UPDATE items SET itemName = ?, itemPrice = ?, itemStock = ?, itemDescription = ? WHERE itemID = ? ",
(
itemName,
itemPrice,
itemStock,
itemDescription,
inp_ID,
),
)
可能是您要找的东西。
您还可以使用命名占位符使事情更易于管理。
conn.execute(
"UPDATE items SET itemName = :name, itemPrice = :price, itemStock = :stock, itemDescription = :desc WHERE itemID = :id",
{
"name": itemName,
"price": itemPrice,
"stock": itemStock,
"desc": itemDescription,
"id": inp_ID,
},
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句