会員登録フォームで、POSTで登録情報を受け取ったらDBにレコード挿入+オートインクリメントのIDをファイル名として、CSVでも情報書き出しをしたいのですが、
もしも、複数のユーザで同時に会員登録処理が行われてしまった場合、
①オートインクリメント値の取得処理
②取得したオートインクリメント値をファイル名としてファイル書き出し処理
①と②はまったく同時に行われるわけではないので、
同時に登録処理が行われた場合
「同じオートインクリメント値」でファイルの書き出しが行われてしまい、
ファイル名の重複は許されませんから、1つのCSV会員情報が消失してしまわないか?と思いました。
以上のような、「同じオートインクリメント値」の取得するケースはありえますか??
また、こういうときはトランザクション(?)処理を行えばよいのでしょうか?
トランザクションとは下記のように行えばよいですか??
PHP
1try{ 2 $dbh = new PDO(DSN, USERNAME, PASSWORD); 3 $dbh->beginTransaction(); 4 try { 5 //レコード追加、オートインクリメント値取得 6 7 //ファイル書き出し処理 8 9 $dbh->commit(); 10 }catch(PDOException $e){ 11 $dbh->rollback(); 12 throw $e; 13 } 14} catch(PDOException $e){ 15 echo $e->getMessage(); 16}
DBのことよくわかっていません、よろしくお願いいたします。