function tran()
{//定义事务成功失败的标志$mark = true;//1. 实例化模型$model = D('student');//2. 开启事务处理$model->startTrans();//3. ls减少2000$sql = "update student set money=money-2000 where uname='ls'";$result = $model->execute($sql);//判断sql执行是否成功,如果失败,则将$mark改为falseif(!$result) {$mark = false;}//4. zs增加2000$sql = "update student set money=money+2000 where uname='zs'";$result = $user->execute($sql);//判断sql执行是否成功,如果失败,则将$mark改为falseif(!$result) {$mark = false;}$mark = false; //暂时强制改为false,测试回滚效果//5. 提交事务//判断$mark的值,为ture则提交,为false则回滚if($mark) {$user->commit();} else {$user->rollback();}}
TP中事务相关的方法: 都是在Model.class.php中定义好的
startTran(): 开启事务处理
Commit(): 提交事务
Rollback(): 回滚
当需要执行的事务是在不同的sql表中时,只需要执行两个sql的model定义的不同即可