이 글에서는 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['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('事物提交',); echo '事物提交'; }else{ M()->rollback(); //$this->error('事物回滚',); echo '事物回滚'; } } }
관련 권장 사항:
thinkphp5 인스턴스의 간단한 구현에 대한 간략한 이야기
위 내용은 ThinkPHP 3.2.2 트랜잭션 작업 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!