トランザクション

somfaでは、ネストされたトランザクションが動作します。

 1 <?php
 2 class test {
 3     function main() {
 4         $somfa->begin();
 5         $this->table1()
 6         $this->table2()
 7         $somfa->commit();
 8     }
 9     function table1() {
10         $somfa->begin();
11         $results = $somfa->save('sample1', array(...)); <-障害発生
12         if ($results) {
13             $somfa->commit();
14         }
15     }
16     function table2() {
17         $somfa->begin();
18         $somfa->save('sample2', array(...));
19         if ($results) {
20             $somfa->commit();
21         }
22     }
23 }
24 

上記でtable1メソッドで障害が発生した場合、mainメソッドのトランザクションはロールバックされます。

Also available in: HTML TXT