私はどのように正確に機能するのだろうかと思っていますlastInsertId()
。Atm、挿入された行の ID を取得するためにこのように使用しているので、この ID をコードの他のセクションで使用できます。例えば:
$stmt = $db->prepare('INSERT INTO image_table (image_name, image_size) VALUES (:image_name, :image_size)');
$stmt->execute(array(
'image_name' => $photoName,
'image_size' => $image_size / 1024,
));
$lastInsertId = $db->lastInsertId('yourIdColumn');
さて、私の質問は次のとおりです。
1)このスクリプトはlastInsertId
、その特定のスクリプトで実行された SQL 挿入を取得しますか?
2)たとえば、3 人の異なるユーザーが同じテーブルに数ナノ秒の差でデータを挿入したとします。このようなもの:
this script -> Inserts to row id 1
Another user -> Inserts to row id 2
Another user -> Inserts to row id 3
その場合、lastInsertId()
そのスクリプトによって挿入された行の最後の ID だったので値 1 を返しますか、それともスクリプトがlastInsertId()
関数を実行する行に到達するまでに最後の ID だったので 3 を返しますか?