>백엔드 개발 >PHP 튜토리얼 >ThinkPHP 3.2.2 트랜잭션 작업 구현 방법

ThinkPHP 3.2.2 트랜잭션 작업 구현 방법

不言
不言원래의
2018-04-28 15:10:212657검색

이 글에서는 ThinkPHP 3.2.2에서 트랜잭션 작업을 구현하는 방법을 주로 소개하고 thinkPHP에서 트랜잭션의 시작, 제출, 롤백 및 기타 작업 방법을 간략하게 분석하고 전체 트랜잭션 제출 및 롤백 작업 예제를 제공할 수 있습니다. 다음을 참고하세요

본 글의 예시는 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:

<?php
namespace SMS\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function index(){
    $data[&#39;operator&#39;] = &#39;Testss&#39;;
    M()->startTrans();
    $result = M(&#39;feehistory&#39;)->add($data);
    $result1 = $result2 = true;
    if(!empty($result)){
      $regdelData[&#39;level&#39;] = &#39;111&#39;;
      $result1 = M(&#39;regdel&#39;)->add($regdelData);
      $regData[&#39;level&#39;] = &#39;101&#39;;
      $result2 = M(&#39;reg&#39;)->where("registryCode=&#39;13693536752-SJB-HUAX-12345678&#39;")->save($regData);
    }
    if(!empty($result) && !empty($result1) && !empty($result2) ){
      M()->commit();
      //$this->success(&#39;事物提交&#39;,);
      echo &#39;事物提交&#39;;
    }else{
      M()->rollback();
      //$this->error(&#39;事物回滚&#39;,);
      echo &#39;事物回滚&#39;;
    }
  }
}

관련 권장 사항:

thinkphp5 인스턴스의 간단한 구현에 대한 간략한 이야기



위 내용은 ThinkPHP 3.2.2 트랜잭션 작업 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.