-2

我有一个使用 python 和 sqlite3 的数据库设置。我需要更新我的库存数据库,以便我可以更改有关该项目的信息。

我目前的代码是:

itemname = e0.get()
quantity = e1.get()
manufacturer = e2.get()
itemnumber = e3.get()
price = e4.get()
curriculumlink = e5.get()
yeargrouplink = e6.get()
location = e7.get()

所有这些都取自 tkinter 输入框,它们当前包含我根据数据库已经拥有的关于该项目的信息加载到其中的信息。

cursor = db.cursor()
sql = "UPDATE items SET quantity = '%s' WHERE name = '%s';" % quantity.strip(), itemname.strip()
cursor.execute(sql)
db.commit()

此代码遇到错误并且不更新数量。如果有人对此有任何建议,我将不胜感激。

但是,有没有办法在一个 sql 语句中更新上述所有属性。数据库中的所有字段都与上面用户输入的名称相同。

谢谢你的时间 :)

4

1 回答 1

0
sql = "UPDATE items SET quantity = '%s' WHERE name = '%s';" % (quantity.strip(), itemname.strip())

会解决你的问题(它没有解释没有括号的元组) 你真的应该让我们 sqlite3 引擎执行格式化

cursor.execute("UPDATE items SET quantity=?WHERE name=?",[qty,name])

实际上,您可能应该使用像 sqlalchemy 这样的 ORM,它允许您轻松切换数据库引擎并将所有数据表示为类

 class Item(Base):
     __tablename__ = "items"
     name = Column(String,primary_key=True)
     qty = Column(Integer,default=0)
于 2015-04-23T16:35:35.163 回答