关于修改的问题

来源:1-11 实战:完成新闻管理系统的用户模块

努力而奋斗的蜗牛

2019-10-16 13:43:38

老师写的修改好像是必须全部都得修改一遍,如果我只想修改用户名或者只想修改用户角色呢?

写回答

2回答

EricDC_Wu

2020-01-11

同学你好:

    我也是想到这个问题,然后自己写了一个可以选择改某一信息的,通过字典保存不同SQL语句,用户传入修改的选项,执行不同语句,可以参考下

# 修改用户信息
def update_user(self, num, info, _id):
    try:
        sql_dict = {
            1: "UPDATE t_user SET username = %s WHERE id = %s",
            2: "UPDATE t_user SET password = HEX(AES_ENCRYPT(%s, 'HelloWorld')) WHERE id = %s",
            3: "UPDATE t_user SET email = %s WHERE id = %s",
            4: "UPDATE t_user SET role_id = %s WHERE id = %s",
        }
        con = pool.get_connection()
        con.start_transaction()
        cursor = con.cursor()
        cursor.execute(sql_dict[num], (info, int(_id)))
        con.commit()
    except Exception as e:
        if "con" in dir():
            con.rollback()
        print(e)
    finally:
        if "con" in dir():
            con.close()


0

好帮手乔木

2019-10-16

同学你好:

原理都是相同的。

同学只要修改想要修改的字段即可。

#只修改用户名
sql="UPDATE t_user SET username=%s " \
    "WHERE id=%s"
cursor.execute(sql,(username,id))
# 修改角色
sql="UPDATE t_user SET role_id=%s " \
    "WHERE id=%s"
cursor.execute(sql,(role_id,id))

相对应的参数列表也就需要修改。

如果我解决了同学的问题,请采纳!学习愉快^_^。

0

0 学习 · 2669 问题

查看课程