DB::transactionDepth PHP Method

transactionDepth() public static method

public static transactionDepth ( )
    public static function transactionDepth()
    {
        $args = func_get_args();
        return call_user_func_array(array(DB::getMDB(), 'transactionDepth'), $args);
    }

Usage Example

 function test_1_transactions()
 {
     DB::$nested_transactions = true;
     $depth = DB::startTransaction();
     $this->assert($depth === 1);
     DB::query("UPDATE accounts SET age=%i WHERE username=%s", 700, 'Abe');
     $depth = DB::startTransaction();
     $this->assert($depth === 2);
     DB::query("UPDATE accounts SET age=%i WHERE username=%s", 800, 'Abe');
     $depth = DB::startTransaction();
     $this->assert($depth === 3);
     $this->assert(DB::transactionDepth() === 3);
     DB::query("UPDATE accounts SET age=%i WHERE username=%s", 500, 'Abe');
     $depth = DB::commit();
     $this->assert($depth === 2);
     $age = DB::queryFirstField("SELECT age FROM accounts WHERE username=%s", 'Abe');
     $this->assert($age == 500);
     $depth = DB::rollback();
     $this->assert($depth === 1);
     $age = DB::queryFirstField("SELECT age FROM accounts WHERE username=%s", 'Abe');
     $this->assert($age == 700);
     $depth = DB::commit();
     $this->assert($depth === 0);
     $age = DB::queryFirstField("SELECT age FROM accounts WHERE username=%s", 'Abe');
     $this->assert($age == 700);
     DB::$nested_transactions = false;
 }