如何用变量更新sql表
Posted
技术标签:
【中文标题】如何用变量更新sql表【英文标题】:how update sql table with variable 【发布时间】:2021-01-04 17:27:15 【问题描述】: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 发送到用户名“RJV@gmail.com” 但我不知道它为什么会掉下来
但是当我这样做时:
cur.execute("更新用户设置密码 = 1234 WHERE 用户名 = 'RJV@gmail.com' ")
它的更新...
【问题讨论】:
【参考方案1】:我认为您需要将设置密码的行更改为:
cur.execute("UPDATE users SET password = ? WHERE username = ?", (username, password))
在您更改用户的密码之前,该用户名为 username 而不是名为例如用户名的用户。 RJV@gmail.com
【讨论】:
抛出一个异常,他只能得到两个参数而不是 3 如果我在括号中标记所有内容,他说他不能得到一个元组 按照规范更新。请再试一次:D 很好,但我只需要替换这个和它的工作(密码,用户名)!谢谢你以上是关于如何用变量更新sql表的主要内容,如果未能解决你的问题,请参考以下文章