用户修改页面提交的数据,如何判断哪个字段被修改过?

问题简介

在编辑资料页面中,我把数据库中原有的内容填充到页面上,然后用户会修改并且提交给我,我要怎么判断这些数据中的某个字段是否被改动过?

详细描述

在用户注册的时候,后台判断了邮箱,用户名,手机号不能重复
但是在用户修改信息的时候,因为用户数据在数据库中已经有存储,这时候怎么判断用户信息是否已经重复?

我的做法(很麻烦)

1.从数据库中拿到用户原始数据
2.拿到用户提交的修改数据
3.对比原始数据中的字段和用户提交的字段,如果相等,说明用户没有修改数据,如果不相等,说明用户修改了数据。
4.这样才能知道用户修改了哪个字段,然后拿着用户修改的字段去数据库里面判断是否唯一

如果我有10个唯一字段,我就得对比10次。。

想听听大佬的思路

我感觉我的方法好麻烦啊,请问各位大佬是怎么解决这个问题的?有没有好的思路?谢谢🙏

讨论数量: 4
野生菌

编辑提交是否有新内容更新,可以前端判断,前端将更新的字段 + 用户主键 id 传参给后端,后端进行处理。 后端可以使用sql,类似 select id from users where email = "222@qq.com" and id <> 1 limit 1; 去查询是否存在重复数据

3年前 评论
Fzyyy (楼主) 3年前
Fzyyy (楼主) 3年前
Fzyyy (楼主) 3年前
野生菌 (作者) 3年前
Fzyyy (楼主) 3年前

使用 id <> 1 不会用到索引,最好是用 id 查出数据再对比的性能要好点

3年前 评论
Fzyyy (楼主) 3年前
showcj (作者) 3年前
野生菌 3年前
AloneUtopia

把用户名、邮箱、手机号等需要唯一性的字段用 OR 查询,通过获取到的结果条数判断是否重复,如果需要知道具体是哪个字段重复了,将查询出来的数据遍历即可判断出。
在更新用户数据时,同时更新更新时间字段,这样即使用户新提交的数据并没有更改也能更新成功。

不过一般类似邮箱、手机号、密码等字段的修改,我通常会采用单个独立修改,而不是使用表单的方式将多个字段一起修改。

3年前 评论
秦晓武

mysql添加唯一索引

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!