Maison  >  Article  >  développement back-end  >  Méthodes d'opération de transaction ThinkPHP 3.2.2

Méthodes d'opération de transaction ThinkPHP 3.2.2

墨辰丷
墨辰丷original
2018-05-23 09:35:051585parcourir

Cet article présente principalement la méthode de mise en œuvre des opérations de transaction dans ThinkPHP 3.2.2, analyse brièvement les méthodes de démarrage, de soumission, de restauration et d'autres opérations de transactions dans thinkPHP et donne des exemples complets d'opérations de soumission et de restauration de transactions. Les amis peuvent se référer au .

manuel, qui est très clair :

5.3.19 Prise en charge des transactions

ThinkPHP fournit une base de données unique pour la prise en charge des transactions Si vous souhaitez utiliser des transactions dans la logique applicative, vous pouvez vous référer à la méthode suivante :

Démarrer la transaction :

$User->startTrans()

Soumettre la transaction :

$User->commit()

Annulation de la transaction :

$User->rollback()

La transaction concerne la base de données elle-même, elle peut donc être utilisée à travers les modèles.

Par exemple :

// 在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;,__ROOT__);
      echo &#39;事物提交&#39;;
    }else{
      M()->rollback();
      //$this->error(&#39;事物回滚&#39;,__ROOT__);
      echo &#39;事物回滚&#39;;
    }
  }
}

Recommandations associées :

méthode php d'utilisation du texte pour compter les visites_php conseils

Connaissance de base des notes d'étude PHP

Explication détaillée de l'effet de menu de liaison secondaire obtenu par les compétences php+mysql_php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn