更新多列:用户名消失

我正在尝试使用 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 函数之前和之后检查了数据库。但是,更改不会保存到数据库中。除了消失的用户名外,没有任何变化。


杨魅力
浏览 182回答 2
2回答

largeQ

您不要将 AND 用于要设置的其他列。相反,您用逗号分隔要设置的列。所以你要update_customer =("""UPDATE customer SET username = ?, firstname = ?, lastname = ?, email = ?, password = ?""")如果没有将所有行设置为相同的值,则使用 WHERE 子句。

汪汪一只猫

您需要在完成交易后保存更改。cursor = conn.cursor() # Get cursorcursor.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_nameSET column1 = value1, column2 = value2, ...WHERE condition;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python