私は奇妙な問題を抱えていました。私たちのウェブサイトには、zendフォームを使ってコーディングされた登録フォームがあります。ユーザー名が存在するかどうかは、zend db insertオペレーションの前にデータベースにチェックされています。 10秒または20秒の差であっても、重複が自動的に記憶されている(推測する)レコードはほとんどない(約100件)。自動インクリメント列以外の異なる値でフォームを再提出する可能性はない。zend formは、 "username"ユーザフィールドに重複したエントリを挿入します。
1
A
答えて
3
状況はかなりシンプルで、「レース」と呼ばれています。
1. User1 submit form (email: [email protected]) 2. User2 submit form (email: [email protected]) 3. verify no [email protected] for User1 4. verify no [email protected] for User2 - before nither of them added there is no [email protected] in DB 5. Add to db User1 6. Add to db User2 - you have got an duplication error.
ソリューション:
1. unique index to filed email 2. transaction (started from verification email exist up to insert a new record)
関連する問題
- 1. mysqlの重複エントリの挿入をスキップ
- 2. コアデータ:エントリを検索または挿入/重複してツリー構造をインポート
- 3. SQLAlchemy - 一括挿入無視: "重複エントリ"
- 4. datagridviewに重複したエントリ
- 5. ローカルストレージに重複したエントリ - Javascript
- 6. Androidルームに重複したエンティティが挿入されました
- 7. MYSQL重複したエントリ
- 8. Sitecore Lucene - 重複したエントリ
- 9. ListViewの重複したエントリ
- 10. カスタムエラー重複したエントリが
- 11. MySql、重複した更新に挿入します。
- 12. CplexSolverError:CPLEXエラー1222:重複したエントリまたはエントリ
- 13. 重複したデータのみをイベントログに挿入するには?
- 14. "form-group-row"クラスを "form-horizontal"に挿入します
- 15. SQLite3 - データベースに重複したエントリが入るのを防ぐ
- 16. エラー[6576] [C-000018df] cdr_mysql.c:データベースへの挿入に失敗しました:(1062)重複するエントリ ''キー 'accountcode'
- 17. はtransformClassesWithJarMergingForDebug、com.android.build.api.transform.TransformException:java.util.zip.ZipException:重複したエントリ:
- 18. sqlサーバーは挿入時に重複GUIDをチェックしますか?
- 19. SQL Server - 選択したユニオンの重複を挿入して挿入する
- 20. MySQLのテーブルに重複したエントリ
- 21. エラー:java.util.zip.ZipException:重複したエントリがビルドに失敗しました
- 22. 重複なしでテーブルに挿入
- 23. titandbにデータを挿入する際に重複エントリを取得する
- 24. Zend Form
- 25. 重複した更新で新しいデータを挿入する
- 26. Wordpressチェック重複してデータを挿入
- 27. 重複更新に挿入
- 28. 重複更新に挿入
- 29. 重複エントリの取得java.util.zip.ZipException:重複エントリ:
- 30. Javaは挿入順序と重複した値を維持します
そうでない場合は私たちにできることすべては推測です、ログインフォームおよび登録プロセスに関連するすべてのコードを投稿してください。 – drew010
こんにちは、サンプルコードを投稿して申し訳ありませんが、一部のユーザーのみに何が起こるかを推測したいと思いますか? – Guru