ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP 3.2.2 トランザクション操作メソッド

ThinkPHP 3.2.2 トランザクション操作メソッド

墨辰丷
墨辰丷オリジナル
2018-05-23 09:35:051606ブラウズ

この記事では、主に ThinkPHP 3.2.2 でトランザクション操作を実装する方法を紹介し、thinkPHP でのトランザクションの起動、送信、ロールバックなどの操作方法を簡単に分析し、完​​全なトランザクション送信とロールバック操作の例を必要とする友人に提供します。明確に説明されている

マニュアルを参照してください:

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

関連推奨事項:テキストを使用して訪問数をカウントするメソッド_php ヒント


phpの基礎知識勉強メモ


php+mysql_phpスキルで実装される二次連携メニュー効果を詳しく解説


以上がThinkPHP 3.2.2 トランザクション操作メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。