我正在一个项目中,每当用户重置他/她的密码时,我都需要更新将用户名作为主键的用户表的密码列。我正在根据用户从控制台输入的值将用户名和密码传递给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
请帮助我解决此问题。 预先感谢!
答案 0 :(得分:0)
请您尝试更换
c.execute('''UPDATE user SET password = reset_password WHERE userid = username''')
使用
c.execute('''UPDATE user SET password = ? WHERE userid = ? ''', (username,reset_password))