CREATE UNIQUE INDEX idxname ON tablename (fieldname);
このインデックスを追加すると、fieldname
のエントリが重複しないようになります フィールドはtablename
に記録されます テーブル。
2番目のクライアントでMySQLエラーが発生します。これをPHPコードで処理し、(エラーメッセージを表示するだけでなく)フォームを再度作成する必要があります。
他の可能性(より複雑な状況の場合)は、LOCK
です。 機能。チェックする前にテーブルをロックしてからレコードを挿入すると、ロックを解除するまで(2番目のブラウザウィンドウで)同時操作が遅延します。その後、レコードはすでに保存されているため、2番目のPHPスクリプトはそれを参照します。 とシテーションを処理します。