$tranDb->startTrans();
$login=$tranDb->table($t_prexif.'login')->add($data1);//添加新账号
$contest=$tranDb->table($t_prexif.'courseware_contest')->add($data);//活动报名表添加数据
if($login&&$contest){
$tranDb->commit();//事务提交
}else{
$tranDb->rollback();die;//事务回滚
}
正常情况下很好,一张表出错全部回滚,但是如果里面再加个“if”判断的话
$tranDb=new Model();
$tranDb->startTrans();
$login=$tranDb->table($t_prexif.'login')->add($data1);//添加新账号
$contest=$tranDb->table($t_prexif.'courseware_contest')->add($data);//活动报名表添加数据
if($login&&$contest){
/*********************************************************************************************************************/
if($a==1){
$tranDb->commit();//事务提交
}else{
$tranDb->rollback();die;//事务回滚
}
/************************************************************************************************************************/
}else{
$tranDb->rollback();die;//事务回滚
}
如果再加个判断的话回滚的时候就会出错,只回滚了一张表,另一张表的数据还在,想问问这是怎么回事,有没有什么办法解决
最佳答案