我正在尝试使用 Python 和 SQLite 更新我的用户详细信息。目的是一次性升级我用户的所有列。我的代码是:def update(): new_username = input("Input your NEW username:\n") new_firstname = input("Input your NEW firstname:\n") new_lastname = input("Input your NEW lastname:\n") new_email = input("Input your NEW email:\n") new_password = input("Input your NEW password:\n") update_customer =("""UPDATE customer SET username = ? AND firstname = ? AND lastname = ? AND email = ? AND password = ?""") cursor.execute(update_customer, [(new_username), (new_firstname), (new_lastname), (new_email), (new_password)])我在运行 python 函数之前和之后检查了数据库。但是,更改不会保存到数据库中。除了消失的用户名外,没有任何变化。
2 回答
largeQ
TA贡献2039条经验 获得超7个赞
您不要将 AND 用于要设置的其他列。相反,您用逗号分隔要设置的列。
所以你要
update_customer =("""UPDATE customer SET username = ?, firstname = ?, lastname = ?, email = ?, password = ?""")
如果没有将所有行设置为相同的值,则使用 WHERE 子句。
汪汪一只猫
TA贡献1898条经验 获得超8个赞
您需要在完成交易后保存更改。
cursor = conn.cursor() # Get cursor
cursor.execute(...) # Execute some SQL queries
# This is the line you've missed.
# You need to call this function every time you update the data in database.
cursor.commit()
此外,您的“UPDATE”命令的 SQL 语法不正确。指定要更改的多个列时,请使用逗号而不是“AND”。像这样:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
添加回答
举报
0/150
提交
取消