使用PHP和MySQL的UNIQUE如何像京東註冊那樣保證用戶名唯一?
phpcn_u1582
phpcn_u1582 2017-06-28 09:23:08
0
3
756

我認為這麼快的判斷用戶名重複是透過設定用戶名字段UNIQUE,然後寫入捕獲異常來實現的。
但我嘗試了一下,發現實際操作起來並沒有那麼簡單,如果要求用戶名唯一就去寫表看異常,如果重複了可以返回false,但成功的話寫入的數據是不完整的,我們真正需要的是將使用者提交的註冊資訊一起寫表,我想了一下,這個操作只能透過事務來實現了,透過事務只要不commit,就不會真正的寫表,但我們已經得知了表中的這條數據是否衝突,不知我的理解對不對。或者是透過其他的方式來實現的。透過select查詢判斷對於大量資料來說不合適吧?

phpcn_u1582
phpcn_u1582

全部回覆(3)
黄舟

一般不是前端輸入完後ajax會去做查詢的麼?提交的時候插庫前再查一遍,做個unique保險一點。

为情所困

根據用戶輸入的名字到資料庫查一下就ok了,有結果就提示已佔用,沒有結果才能用,如果錄入其他信息期間被人先行提交佔用再提示被佔用就ok了,提示話術斟酌一下即可,這樣的機率很低且也可以接受

学习ing

到資料庫查吧

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!