首页 > thinkphp事务问题,

thinkphp事务问题,

$c=M('customer');
$result=$c->add($data);

$o=M('order');
$result2=$o->add($data2);

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

if($result && $result2){
$c->commit();//成功则提交哦啊
//问题在这里,这里写不写$o->commit();不写的话是根据上面$c->startTrans();这里写的是$c的原因吗
}else{
$c->rollback();//不成功,回滚
//问题在这里,这里写不写$o->rollback();
}


折叠我吧,我揣摩了半天也没能看懂


仔细去学习这个类文件,弄明白了M、D、Model等一些列机制,你就明白了,

结果是:

事务跟你实例化是的表没有关系

这里你可以使用


$c->startTrans();
...
$c->commit();

也可以使用

$o->startTrans();
...
$o->commit();

只要保持一致就ok


参照 http://www.thinkphp.cn/topic/4182.html http://www.thinkphp.cn/topic/22146.html

注意数据库引擎是否是 innodb

试下这样:

php$c=M('customer');
$c->startTrans();
$result=$c->add($data);

if($result){
    $c->commit();
}else{
    $c->rollback();
}
【热门文章】
【热门文章】