在Python中使用Sqlite3模块更新表

时间:2020-08-12 09:55:33

标签: python

我正在一个项目中,每当用户重置他/她的密码时,我都需要更新将用户名作为主键的用户表的密码列。我正在根据用户从控制台输入的值将用户名和密码传递给update_table函数,下面是我的代码段-

def sql_update_table(conn, username, reset_password):
    c = conn.cursor()
    #value = (username, reset_password)
    #c.execute('''UPDATE user SET password = ? WHERE userid = ? ''', value)
    c.execute('''UPDATE user SET password = reset_password WHERE userid = username''')
    conn.commit()

我尝试了两种情况,即用#中提到的元组和直接使用不使用#时的元组传递值。但是,对于第一种情况,没有错误,但是该表未使用新的密码值更新,而对于后一种情况,我的错误率低于--p

sqlite3.OperationalError:没有这样的列:reset_password

请帮助我解决此问题。 预先感谢!

1 个答案:

答案 0 :(得分:0)

请您尝试更换

c.execute('''UPDATE user SET password = reset_password WHERE userid = username''')

使用

c.execute('''UPDATE user SET password = ? WHERE userid = ? ''', (username,reset_password))