この記事では、主に 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 '事物回滚';
}
}
}
以上がThinkPHP 3.2.2 トランザクション操作の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。