注:操作的数据表必须是innodb类型,不然失败不会回滚
TP3 数据库的事务操作
$order = M('order');
$order_detailed = M('order_detailed');
$order->startTrans();
$order_detailed->startTrans();
$reorder = $order->where()->save($dataorder);
$reorder_detailed = $order_detailed->where()->save($dataorder);
if($reorder_detailed && $reorder){
$order->commit();
$order_detailed->commit();
}else{
$order->rollback();
$order_detailed->rollback();
}
TP5 数据库的事务操作
Db::startTrans();
try{
$re1 = Db::table(config('database.prefix').'biao1')->where()->setInc();
$re2 = Db::table(config('database.prefix').'biao2')->where()->setField('state','0');
if($re1 && $re2){
Db::commit(); // 提交事务
return ['code'=>1,'msg'=>'操作成功!'];
}else{
Db::rollback();
}
} catch (\Exception $e) {
Db::rollback(); // 回滚事务
}
return ['code'=>0,'msg'=>'操作失败!'];