所以我得到了这个sql(它使用(1,1,1),因为我想消除它为OrderID输入错误参数(在这种情况下为1)的可能性)的原因,功能如下所示。由于某种原因,它在运行时不会返回错误,但是即使它看起来与我的代码中其他地方的sql相同,也不会更新该表。
我数据库中的所有字段都设置为除ID之外的文本...我想就这些了,在此先感谢您的建议。
query("UPDATE Orders SET CustomerID = ?, OrderDate = ? WHERE OrderID = ?", (1, 1, 1))
def query(sql, data = None):
with sqlite3.connect("notDataBase1.db") as db:
cursor = db.cursor()
if data == None:
cursor.execute(sql)
else:
cursor.execute(sql, data)
results = cursor.fetchall()
return results
答案 0 :(得分:0)
就像有人在评论中说的那样,您需要在查询后运行db.commit()
才能将事务写入数据库。您可以阅读the docs了解更多详细信息。您也不需要获取UPDATE
查询。像这样:
update("UPDATE Orders SET CustomerID = ?, OrderDate = ? WHERE OrderID = ?", (1, 1, 1))
def update(sql, data):
with sqlite3.connect("notDataBase1.db") as db:
cursor = db.cursor()
cursor.execute(sql, data)
db.commit()