ユーザー データベースに、登録時に生成される 6 桁の数字フィールドがあります。私mt_rand(100000, 999999)
は数字を生成するために使用します。
ここで質問がありますが、誰も同じ番号を取得しないようにするために、PHP コードの代わりにフィールドを UNIQUE にする必要があります (これが最善だと思います)。たぶん、私が知らない他の方法があります。問題は、これを行うための最良の方法は何ですか?
まずunique
フィールドに制約を与えます。
if (mysqli_errno() == 2027)
mysqli_query("INSERT INTO ... {mt_rand()}");
そのため、重複する値を挿入すると、重複しているというエラー コードが表示されます2027
。クエリを再送信できます。
なぜあなたはしないのですか
カラムを使用しAUTO_INCREMENT
ます。
生成された番号が既に存在するかどうかを確認するためにクエリを実行することは悪い解決策であり、より多くの番号が使用されるため、登録されたユーザーが増えると悪化します。したがって、常に有効な番号を生成するために、すべての生成された番号を追跡する必要があります。
AUTO_INCREMENT
列の場合、これは「自動的に」発生します。