SQLite3 更新语句

SQLite3 Update statement

我有一个数据库设置 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 语句中更新上述所有属性。数据库中的所有字段都与上面用户输入的名称相同。

感谢您的宝贵时间:)

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)