thinkphp的事务

ThinkPHP的事务回滚示例如下:


$m
=D(
‘YourModel‘
);
//或者是M();

$m2
=D(
‘YouModel2‘
);

$m
->startTrans();
//在第一个模型里启用就可以了,或者第二个也行

$result
=
$m
->where(
‘删除条件‘
)->
delete
();

$result2
=m2->where(
‘删除条件‘
)->
delete
();

if
(
$result
&&
$result2
){

$m
->commit();
//成功则提交

}
else
{

$m
->rollback();
//不成功,则回滚

}

注意:MySQL数据库必须是Innodb和Bdb才能支持事务。

时间: 2024-08-07 08:40:07

thinkphp的事务的相关文章

ThinkPHP实现事务回滚示例代码

ThinkPHP的事务回滚示例如下: $m=D('YourModel');//或者是M(); $m2=D('YouModel2'); $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 $result=$m->where('删除条件')->delete(); $result2=m2->where('删除条件')->delete(); if($result && $result2){ $m->commit();//成功则提交

thinkphp 的事务回滚处理 和 原始PHP的事务回滚实例

1.  要程序里面支持事务,首先连接的数据库和数据表必须支持事务 mysql   为例: 数据库InnoDB支持 transactions 数据表支持事务:InnoDB  支持transaction 2. 框架thinkphp  支持事务代码 public function testrollback(){ $model1 = D('item'); $model2 = D('vote'); $model1->startTrans(); $res1 = $model1->where('id = 5

ThinkPHP 模型 - 事务支持

使用事务之前,先确保数据库的存储引擎支持事务操作. MyISAM:不支持事务,主要用于读数据提高性能 InnoDB:支持事务.行级锁和并发 Berkeley DB:支持事务 <?php /** * 事务测试 */ public function transaction() { $modelA = model('A'); $modelA->startTrans(); // 开启事务A $result = $modelA->save($data1); if($result === false

thinkphp curd的事务回滚 一看就会

/** *thinkphp数据库的事务回滚例子 *这一般用在多表操作,比如: (1)订单表和其他订单关联信息,删除订单同时也要把订单关联表中的信息删掉,如果说删除了订单表结果在删除订单关联信息表时出现问题,也就是说,订单的关联信息没有删掉,这时就会出现信息不对应,甚至信息的冗余,这时采用事务回滚,如果一个没有删掉,之前的也要回滚,保持记录的对应统一 (2)银行打钱,如果A给B打钱,给Binsert成功了,但是Adelete失败,这时银行就亏大了,明白?此时就要回滚,如果两者其中一者不成立,则都复

ThinkPHP 处理商品添加的时候操作多张表 用事务解决。

#重新父类的add方法 public function add(){ #同时操作多装表,可以考虑用事务来做,要同时插入数据成功要么都不插输入数据. #开启事务的前提是表的引擎必须是InnoDB #开启事务 //mysql_query("STRAT TRANSACTION"); #--------------(1)插入商品的基本信息------------ #判断是否插件成功 if(($goods_id=parent::add())===FALSE){ return FALSE; } #

thinkphp对180万数据批量更新支持事务回滚

目前测试180万多的数据,大概是正常的,不知道再多了会怎么样了我们要给表改成 innodb类型 干货来了: set_time_limit(0); ini_set("memory_limit","800M");//180万数据  数据越多越消耗内存 $t1 = microtime(true); $Model = M('orderlisttest');//先用 M 函数实例化一个空对象 $rr['goods_tuihuo']=1; $subQuery = $Model-

ThinkPHP - 事务操作

/* * 添加酒店和房型 * */ public function insertAll($arr_hotel=array(),$arr_room=array()){ $model = new Model(); $model->startTrans(); $flag=false; $hid = $model->table(C('DB_PREFIX').'hotel')->add($arr_hotel); if( $hid && count($arr_room) ==0 ){

ThinkPHP 3.2.2 事务

1 <?php 2 namespace SMS\Controller; 3 use Think\Controller; 4 class IndexController extends Controller { 5     public function index(){ 6         //echo 111; 7         $data['operator'] = 'Testss'; 8         M()->startTrans(); 9         $result = M(

ThinkPHP V5.0 正式版发布

ThinkPHP5.0 正式版的发布,是团队中秋节送给PHP开发者最好的礼物!祝大家中秋快乐,事业顺利,用ThinkPHP开发更健康^_^ ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由.日志.异常.模型.数据库.模板引擎和验证等模块都已经重构(基础教程qkxue.net),不适合原有3.2项目的升级