当前位置:asp编程网>技术教程>Php教程>  正文

thinkphp3.2.x和thinkphp5事务处理实例比较

2017-07-07 09:54:52   来源:www.aspbc.com   作者:zuiaiphp   浏览量:3007   收藏
thinkphp3.2.x和thinkphp5事务处理有很大的区别,这里列出来它们两个的区别。

一、thinkphp3.2.x事务处理实例
//事务处理
M()->startTrans();//开启事务
$result = true;
/*以下进行相关的业务逻辑操作*/
…… 如果出现错误,将$result=false;正确就不用处理
/*以上进行相关的业务逻辑操作*/
if(!$result)
{
M()->rollback();//回滚
$this->error('错误提示');
}
M()->commit();//事务提交

二、thinkphp5事务处理实例
// 启动事务
Db::startTrans();
try{
    /*以下进行相关的业务逻辑操作*/
    …… 
    /*以上进行相关的业务逻辑操作*/
    // 提交事务
    Db::commit();    
} catch (\Exception $e) {
    // 回滚事务
    Db::rollback();
}
如果出现Class 'app\index\model\Db' not found这个错误,需要加上use think\DB;

以上就是两者的区别

注意:如果程序没有错误,但数据没有写入数据库中,这可能是你的数据库使用ENGINE=MyISAM引擎。

因为在mysql中使用事务处理的话,需要数据库引擎支持事务处理。MySQL的MyISAM引擎不支持事务处理,需要使用InnoDB引擎。去数据库中设计中将ENGINE=MyISAM修改成ENGINE=InnoDB即可


原创文章,转载请注明来源www.aspbc.com,谢谢。


关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网