首页  >  问答  >  正文

使用PHP和MySQL的UNIQUE如何像京东注册那样保证用户名唯一?

我认为这么快的判断用户名重复是通过设置用户名字段UNIQUE,然后写入捕获异常来实现的。
但我尝试了一下,发现实际操作起来并没有那么简单,如果要求用户名唯一就去写表看异常,如果重复了可以返回false,但成功的话写入的数据是不完整的,我们真正需要的是将用户提交的注册信息一起写表,我想了一下,这个操作只能通过事务来实现了,通过事务只要不commit,就不会真正的写表,但我们已经得知了表中的这条数据是否冲突,不知我的理解对不对。或者是通过其他的方式来实现的。通过select查询判断对于大量数据来说不合适吧?

phpcn_u1582phpcn_u15822640 天前755

全部回复(3)我来回复

  • 黄舟

    黄舟2017-06-28 09:25:08

    一般不是前端输入完后ajax会去做查询的么?提交的时候插库前再查一遍,做个unique保险一点。

    回复
    0
  • 为情所困

    为情所困2017-06-28 09:25:08

    根据用户输入的名字到数据库查一下就ok了,有结果就提示已占用,没有结果才能用,如果录入其他信息期间被人先行提交占用再提示被占用就ok了,提示话术斟酌一下即可,这样的概率很低并且也可以接受

    回复
    0
  • 学习ing

    学习ing2017-06-28 09:25:08

    到数据库查吧

    回复
    0
  • 取消回复