【问题标题】:how update sql table with variable如何用变量更新sql表
【发布时间】: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' ")

它的更新...

【问题讨论】:

    标签: python html sql


    【解决方案1】:

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

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

    在您更改用户的密码之前,该用户名为 username 而不是名为例如用户名的用户。 RJV@gmail.com

    【讨论】:

    • 抛出一个异常,他只能得到两个参数而不是 3 如果我在括号中标记所有内容,他说他不能得到一个元组
    • 按照规范更新。请再试一次:D
    • 很好,但我只需要替换这个和它的工作(密码,用户名)!谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    相关资源
    最近更新 更多