私は次のコードを持っている:私はお願いしたいと思いますどのようなPDO最後の挿入IDは常に正しいものですか?
<?
$query =$db->prepare("INSERT INTO a_table (id, a_field) VALUES ('', (:a_field)");
$query->bindParam(":a_field", $a_value);
$query->execute();
$last_id = $db->lastInsertId('a_table');
?>
はこれです。 2人がまったく同じ時刻にページを読み込んだとしたら、最後のIDが取得される前に他人のクエリが挿入され、IDが混在する可能性がありますか?
いいえ、競合はありません。挿入IDは接続に依存し、各ページの読み込みは新しい接続を確立します。 –
基礎となるデータベースに依存します。それがmysqlの場合、PDOは単にmysql last_insert_id()API関数を呼び出します。これは返されたIDがPDO接続によって最後に実行された挿入クエリによって生成されたIDであることを保証します。 –
[LAST_INSERT_ID()の重複可能性]マルチユーザー環境での動作](http://stackoverflow.com/questions/5835677/last-insert-id-how-it-works-at-multi-users-environment) –