検索

ホームページ  >  に質問  >  本文

JD.com登録のようにユーザー名を一意にするためにPHPとMySQLのUNIQUEを使用するにはどうすればよいですか?

ユーザー名の重複を判断する簡単な方法は、ユーザー名フィールド UNIQUE を設定し、例外をキャッチするように記述することだと思います。
しかし、試してみたところ、実際の操作はそれほど単純ではないことがわかりました。ユーザー名が一意である必要がある場合は、例外を確認するためにテーブルを書き込むだけです。繰り返した場合は false を返す可能性がありますが、が成功すると、書き込まれたデータは不完全になります。本当に必要なのは、ユーザーが送信した登録情報をテーブルにまとめて書き込むことです。よく考えてみると、この操作はトランザクションでしか実現できないことに気づきました。トランザクションはコミットされていないため、テーブルは実際には書き込まれませんが、「このデータは競合していますか?」ということはすでに学習済みです。私の理解が正しいかどうかはわかりません。あるいは、他の手段を通じて達成されます。大量のデータに対して select クエリで判断するのは適切ではないでしょうか?

phpcn_u1582phpcn_u15822786日前903

全員に返信(3)返信します

  • 黄舟

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

    フロントエンドの入力が完了した後に ajax がクエリを実行するというのは一般的に真実ではないでしょうか?投稿する際は、ライブラリに挿入する前にもう一度確認してください。一意であるほうが安全です。

    返事
    0
  • 为情所困

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

    ユーザーが入力した名前に従って、データベースを確認すると、結果があれば占有されていることが表示されます。結果がない場合は、誰かが最初に送信したものを使用できます。他の情報を入力しているときに、それが占有されているというプロンプトが表示されたら、大丈夫です。はい、その可能性は非常に低いので、許容されます

    返事
    0
  • 学习ing

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

    データベースで確認してください

    返事
    0
  • キャンセル返事