您的位置:首页 > 编程语言 > PHP开发

YII中使用事务

2014-02-26 10:38 295 查看
$transaction= Yii::app()->db->beginTransaction();//创建事务
$transaction->commit();//提交事务
$transaction->rollback();//回滚事务

 

//使用事务,操作如果失败,则回滚
$transaction=Yii::app()->db->beginTransaction();
try{
$orders_detial=  new TblOrderDetial();
$orders->orders_sn=$orders_sn=date('ymd-',$time).rand(1000,9999);
$orders->consignee=$_GET['consignee'];
$orders->shipping_id=$_GET['shipping'];
$orders->pay_id=$_GET['payment'];
$orders->goods_amount=$cart->getPrice();
$orders->add_time=date('Y-m-d H:I',$time);
$orders->address=$_GET['address'];
$orders->mobile=$_GET['mobile'];

$orders->save();

$orders_id=$orders->attributes['orders_id'];

//读取购物车内的信息,写入order_detial表中
$items=$cart->items();
$succ=array();
foreach($items as $k=>$v){
$detialModel=new TblOrderDetial();
$detialModel->orders_id=$orders_id;
$detialModel->goods_id=$k;
$detialModel->goods_name=$v['name'];
$detialModel->shop_price=$v['shop_price'];
$detialModel->goods_number=$v['num'];
if($temp=$detialModel->save()){
$succ[]=$temp;
}
}
if($cart->cnt()==count($succ)){
//如果入库的数量等于购物车里面的数量,则回滚
$transaction->commit();
}
}//try end
catch(Exception $e){
$transaction->rollback();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: