$transaction = Customer::getDb()->beginTransaction();
try {
$customer = new Customer();
$customer->id = 1;
$customer->save();
$customer = new Customer();
$customer->id = 2;
$customer->save();
$customer = new Customer();
$customer->id = 3;
$customer->save();
$transaction->commit();
} catch(\Exception $e) {
$transaction->rollBack();
throw $e;
}
如上代码,$transaction->rollBack();
这行代码感觉可有可无,去掉之后,如果数据库执行异常了,所有try里面的数据库操作都不会被执行
请求中不提交的话,下次 事务提交会把这次的sql提交掉的,具体的细节你可以搜一下。
三条数据,其中一条发生错误,ROLLBACK的话,其余两条数据也会被回滚,我是这么理解的
应该不可以的
不可以的,否则没办法