如何用变量更新sql表


def changePassword():
with sqlite3.connect('RealTime.db') as conn: // <sqlite3.Connection object at 0x7ff18eef1a80>
cur = conn.cursor() //<sqlite3.Cursor object at 0x7ff18ef08420>
result = request.form
username = RES['user'] //'RJV@gmail.com'
t = (username,) //('RJV@gmail.com',)
user = cur.execute("SELECT * FROM USERS WHERE USERNAME=? ", t).fetchone() //('RJV@gmail.com', 'Roni', '1258')
if(result.get('oldPass') == newDic(user)['password']):
newPass = result.get('newPass') //'1234'
try:
cur.execute("UPDATE users SET password = newPass WHERE username = username")
conn.commit()
return redirect('/')
except Exception as e:
print(e)
return render_template('RealTimeChangePassword.html')
return render_template('RealTimeChangePassword.html')

嘿,我试着用变量newPass更新用户的密码所以我尝试将newPass发送到username'RJV@gmail.com'但我不知道为什么它会下跌

但当我喜欢这个的时候:

cur.execute(更新用户设置密码=1234 WHERE用户名='RJV@gmail.com’(

其更新。。。

我认为您需要将设置密码的行更改为以下内容:

cur.execute("UPDATE users SET password = ? WHERE username = ?", (username, password))

在您更改一个用户的密码之前,该用户通常被称为username,而不是一个被称为e.g。RJV@gmail.com

最新更新