12,964
回編集
533行目: | 533行目: | ||
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | ||
// トランザクション開始 | |||
$dbh->beginTransaction(); | $dbh->beginTransaction(); | ||
// SQLクエリの実行 | |||
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')"); | $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')"); | ||
$dbh->exec("insert into salarychange (id, amount, changedate) values (23, 50000, NOW())"); | $dbh->exec("insert into salarychange (id, amount, changedate) values (23, 50000, NOW())"); | ||
// 正常に実行できた場合はコミット | |||
$dbh->commit(); | $dbh->commit(); | ||
} | } | ||
catch(Exception $e) | catch(Exception $e) | ||
{ | { | ||
$dbh->rollBack(); | // エラーが発生した場合はロールバック | ||
if ($dbh->inTransaction()) { | |||
$dbh->rollBack(); | |||
} | |||
echo "失敗しました。" . $e->getMessage(); | echo "失敗しました。" . $e->getMessage(); | ||
} | } |