Python sqlite3更新语句未更新

时间:2019-01-14 18:40:15

标签: python python-3.x sqlite

所以我得到了这个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

1 个答案:

答案 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()