PDOを利用して、last insert idを取得する

MySQL

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しか返ってきません。
なので、トランザクションの間に取得する必要があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です