Yii2中的事务总结

有关于 SQL语句的事务处理:
 
$transaction = $connection->beginTransaction();
try {
    $connection->createCommand($sql1)->execute();
    $connection->createCommand($sql2)->execute();
    // ... executing other SQL statements ...
    $transaction->commit();
} catch(Exception $e) {
    $transaction->rollBack();
}
有关于 对象操作的事务处理:
$transaction = Yii :: $app-> db ->beginTransaction ();
try {
    $user = new User();
    $user-> username = $this -> username;
    $user-> email = $this -> email;
    $user-> setPassword ($this-> password);
    $user-> generateAuthKey ();
    $user-> save ();
 
    $user_info = new UserInfo();
    $user_info-> u_id = $user -> id;
    $user-> link ('userInfo' , $user_info); // <-- it creates new record in UserInfo table with ua.user_id = user.id
    $transaction -> commit();
} catch (Exception $e) {
    $transaction ->rollBack ();
    throw $e;
}
注意:User 类中必须包含有 getUserInfo() 的这个方法 

你可能感兴趣的:(Yii2中的事务总结)