本文實例講述了ThinkPHP 3.2.2實現事務操作的方法。分享給大家供大家參考,具體如下:
手冊里說得非常清楚 :
5.3.19 事務支持
ThinkPHP提供了單數據庫的事務支持,如果要在應用邏輯中使用事務,可以參考下面的方法:
啟動事務:
$User->startTrans()
提交事務:
$User->commit()
事務回滾:
$User->rollback()
事務是針對數據庫本身的,所以可以跨模型操作的 。
例如:
// 在User模型中啟動事務$User->startTrans()// 進行相關的業務邏輯操作$Info = M("Info"); // 實例化Info對象$Info->save($User); // 保存用戶信息if (操作成功){  // 提交事務  $User->commit()}else{  // 事務回滾  $User->rollback()}IndexController.class.php:
<?phpnamespace SMS/Controller;use Think/Controller;class IndexController extends Controller {  public function index(){    $data['operator'] = 'Testss';    M()->startTrans();    $result = M('feehistory')->add($data);    $result1 = $result2 = true;    if(!empty($result)){      $regdelData['level'] = '111';      $result1 = M('regdel')->add($regdelData);      $regData['level'] = '101';      $result2 = M('reg')->where("registryCode='13693536752-SJB-HUAX-12345678'")->save($regData);    }    if(!empty($result) && !empty($result1) && !empty($result2) ){      M()->commit();      //$this->success('事物提交',__ROOT__);      echo '事物提交';    }else{      M()->rollback();      //$this->error('事物回滾',__ROOT__);      echo '事物回滾';    }  }}希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選