概要
PDOのプリペアドステートメントで値を渡し、同じ接続でINSERT直後にIDを取得します。複数行INSERTでは返り値の意味をDBドライバーごとに確認します。
実施例
$pdo->beginTransaction();
$stmt = $pdo->prepare('INSERT INTO entries (title) VALUES (:title)');
$stmt->execute(['title' => $title]);
$id = $pdo->lastInsertId();
$pdo->commit();注意点
例外時はrollbackし、IDをアプリケーション側で推測しないことが重要です。
参考: 公式ドキュメント
Comments
Perl で、直近の INSERT で生成された ID を得るには?