phpのPDOのlastinsertid()について、詳しい仕様を教えて頂きたいです。
例えば、下記のような単純なユーザー登録、その後に登録したIDをセッションにいれるような処理を作るとします。
PHP
1// プライマリキーにはAUTO_INCREMENTの「user_id」が存在します。 2$sql = "INSERT INTO users 3 (user_name) 4 values 5 (:user_name)"; 6 7$sth = $pdo -> prepare($sql); 8$sth -> bindValue(':user_name', $name, PDO::PARAM_STR); 9$sth -> execute(); 10$_SESSION['me'] = $pdo -> lastInsertId();
このときに$pdo -> lastInsertId()で、セッションにidを入れてますが、
もしこの処理が各ホストから同時に行われた場合、
本来入るべきIDではなく、別のユーザーのlastInsertId()を取得してしまう場合があるのでしょうか?
マニュアルには「最後に挿入された行の ID」となってますので、低い確率ですが、同時処理とかで別のユーザーのidを取得してしまうのではないかと懸念しております。
どうかご教示お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/04 02:42
2015/12/04 02:52