Transactions - Nesting.php 462 Bytes
Newer Older
doctrine's avatar
doctrine committed
1
<?php
2 3
function saveUserAndGroup(Doctrine_Connection $conn, User $user, Group $group) {
    $conn->beginTransaction();
doctrine's avatar
doctrine committed
4 5
    
    $user->save();
6

doctrine's avatar
doctrine committed
7 8
    $group->save();

9
    $conn->commit();
doctrine's avatar
doctrine committed
10 11 12
}

try {
13
    $conn->beginTransaction();
doctrine's avatar
doctrine committed
14

15 16 17
    saveUserAndGroup($conn,$user,$group);
    saveUserAndGroup($conn,$user2,$group2);
    saveUserAndGroup($conn,$user3,$group3);
doctrine's avatar
doctrine committed
18

19
    $conn->commit();
doctrine's avatar
doctrine committed
20
} catch(Doctrine_Exception $e) {
21
    $conn->rollback();
doctrine's avatar
doctrine committed
22 23
}
?>