トランザクション

?php

 public function transferMoney($fromAccountNumber, $toAccountNumber, $amount)
 {
  // get the PDO connection object from Propel
  $con = Propel::getConnection(AccountPeer::DATABASE_NAME);
  
  $fromAccount = AccountPeer::retrieveByPk($fromAccountNumber, $con);
  $toAccount   = AccountPeer::retrieveByPk($toAccountNumber, $con);
  
  $con->beginTransaction();
  
  try {
    
    // remove the amount from $fromAccount
    $fromAccount->setValue($fromAccount->getValue() - $amount);
    $fromAccount->save($con);
    // add the amount to $toAccount
    $toAccount->setValue($toAccount->getValue() + $amount);
    $toAccount->save($con)
  
    $con->commit();
  
  } catch (Exception $e) {
     $con->rollback();
     throw $e;
  }
 }

http://www.propelorm.org/wiki/Documentation/1.4/Transactions


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS