更新した後に、データの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しか返ってきません。
トランザクションの間に、コミット前に、$dbh->lastInsertId(); の実行をして、取得します!簡単!
実施する場所に要注意です。