2013-02-02 8 views
6

は私のシステムのユーザにU1がテーブルで新しいデータベースのエントリを作成したと、私はは、そのようなエントリのID(AUTO_INCREMENTフィールド)を取得するために機能をにおけるlastInsertId使用しますが、ほぼ同時に(少し後)別のユーザーU2同じを行う。それは最も最近のものであるので、この場合はPHP PDO関数におけるlastInsertIdとレースコンディション

は、は、U1他のユーザーが追加したエントリのIDについてリターンにおけるlastInsertIdん?

ありがとうございました。

+1

あなたの質問に有効な答えは、http://stackoverflow.com/questions/10371306/best-way-to-find-the-last-inserted-id-in-mysql-using-php –

+1

私の理解は各ユーザーは別の接続になり、問題はありません。スクリプトの開始時に接続を作成するときは、コードを1回実行するだけで基本的に作成します。あなたが接続を共有するためのすてきなことをしない限り、別のユーザーは新しい接続を持つでしょう。 – mpen

+0

ニース、ありがとう。 – Trino00

答えて

3

私はあなたが異なるスレッドのための単一の接続を使用する場合に競合状態について心配する必要があると信じています。リクエストごとに異なる接続を使用している場合は、うまくいくはずです。詳細については、チェックアウトhttp://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.htmlをご覧ください。

+0

あなたは基本的にあなたのスレッドを越えてあなたの接続を再利用するために行かなくてはなりません。そういったことをしなければ、大丈夫です。 – Nelson

関連する問題