import sqlite3
def update(conn, email, user_id):
sql = '''
UPDATE
users
SET
email=?
WHERE
id=?
'''
conn.execute(sql, (email, user_id))
print(f"id为{user_id}:已更新为 email:{email}")
def main():
# 指定数据库的名字
db_path = 'demo.sqlite'
# 连接数据库
conn = sqlite3.connect(db_path)
print("打开了数据库")
# 更新数据
update(conn, 2, 'abc@xyz.com')
# 提交
conn.commit()
# 关闭连接
conn.close()
if __name__ == "__main__":
main()
目前发现问题主要在下面这句
conn.execute(sql, (email, user_id,))
只要将 user_id 与 email 的位置交换,之后数据就能正常被updata更新。
同时入参中的user_id(指定数据库表单中的id参数)也不能放在其他参数的前面。
def update(conn, username, email, user_id):
#todo
目前不明原理