fuephpでトランザクション処理(try-catch())
頻繁に使う記述なんだけど、なにげに忘れやすい。本当は、いつも前のソースからコピペしているから覚えていない・・・。
作成日:2018-02-23, 更新日:2025-11-18
トランザクション無しのただのtry-catch
throwしたときだけでなく、Warning、NOTICE系のエラーもcatch()に入る。
try {
if ( 〇〇〇 ) {
throw new Exception(〇〇〇);
}
}
catch (Exception $e) {
// echo $e->getMessage();
}
try-catchにトランザクションを組み込む
・DBのテーブルが「InnoDB」のときのみ
※「MyISAM」だと「ロールバックされない!」ってコトになる。
try {
$db = \Database_Connection::instance();
$db->start_transaction();
if ( 〇〇〇 ) {
throw new Exception(〇〇〇);
}
$db->commit_transaction();
}
catch (Exception $e) {
$db->rollback_transaction();
// echo $e->getMessage();
}
FuelPHPでエラー
▼「\」をつけておけばOK
try {
throw new \Exception(〇〇〇);
}
catch (\Exception $e) {
}