文章詳情頁
使用PHP和MySQL的UNIQUE如何像京東注冊那樣保證用戶名唯一?
瀏覽:164日期:2022-06-10 18:16:42
問題描述
我認(rèn)為這么快的判斷用戶名重復(fù)是通過設(shè)置用戶名字段UNIQUE,然后寫入捕獲異常來實(shí)現(xiàn)的。但我嘗試了一下,發(fā)現(xiàn)實(shí)際操作起來并沒有那么簡單,如果要求用戶名唯一就去寫表看異常,如果重復(fù)了可以返回false,但成功的話寫入的數(shù)據(jù)是不完整的,我們真正需要的是將用戶提交的注冊信息一起寫表,我想了一下,這個操作只能通過事務(wù)來實(shí)現(xiàn)了,通過事務(wù)只要不commit,就不會真正的寫表,但我們已經(jīng)得知了表中的這條數(shù)據(jù)是否沖突,不知我的理解對不對。或者是通過其他的方式來實(shí)現(xiàn)的。通過select查詢判斷對于大量數(shù)據(jù)來說不合適吧?
問題解答
回答1:一般不是前端輸入完后ajax會去做查詢的么?提交的時候插庫前再查一遍,做個unique保險(xiǎn)一點(diǎn)。
回答2:根據(jù)用戶輸入的名字到數(shù)據(jù)庫查一下就ok了,有結(jié)果就提示已占用,沒有結(jié)果才能用,如果錄入其他信息期間被人先行提交占用再提示被占用就ok了,提示話術(shù)斟酌一下即可,這樣的概率很低并且也可以接受
回答3:到數(shù)據(jù)庫查吧
標(biāo)簽:
京東
相關(guān)文章:
1. android - 美團(tuán)篩選處篩選條件停靠+條件點(diǎn)擊滑動到頂部。2. list - python 求助3. python3.x - python3.5使用pyinstaller打包報(bào)錯找不到libpython3.5mu.so.1.0等文件求解?4. python算法,如何優(yōu)雅的合并2個列表字典?5. python - def自定義函數(shù)的疑惑6. 請教: 關(guān)于 python 反斜杠轉(zhuǎn)義的疑問7. mysql優(yōu)化 - mysql like語句會導(dǎo)致全表掃描?8. javascript 如何下載一個excel文件 ?9. Python中, 仿照經(jīng)典代碼實(shí)現(xiàn)單例, 卻出現(xiàn)了不是單例的的狀態(tài), 代碼哪里出錯了 ?10. php由5.3升級到5.6后,登錄網(wǎng)站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?
排行榜

熱門標(biāo)簽