fuephpでトランザクション処理(try-catch())
頻繁に使う記述なんだけど、なにげに忘れやすい。本当は、いつも前のソースからコピペしているから覚えていない・・・。
作成日:2018-02-23, 更新日:2019-10-27
トランザクション無しのただの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) { }