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() 的这个方法

浙公网安备 33010602011771号