PDOを利用して、last insert idを取得する
何かと、さっき更新したデータのIDが必要な場面ってありますよね。
My SQLで
mysql> SELECT LAST_INSERT_ID();
とやれば取得できますが、PDOを利用していれば、PDOの関数を使って、SQLを発行せずにlast insert idを取得することができます。
$dbh = new PDO(‘mysql:host=localhost;dbname=test’, ‘username’, ‘password’);
$stmt = $dbh->prepare("INSERT INTO test (name, email) VALUES(?,?)"); try { $dbh->beginTransaction(); $tmt->execute( array('user', 'user@example.com')); print $dbh->lastInsertId(); $dbh->commit(); }
これですね、commitの後に$dbh->lastInsertId(); とやると、0しか返ってきません。
なので、トランザクションの間に取得する必要があります。