delete(33);" /> delete(33);" />
首页 > 编程知识 正文

tp5 中 事务处理 rty catch,事务处理系统

时间:2023-05-05 18:21:56 阅读:214874 作者:4544

一, // 开启事务Db::startTrans();// 删除数据 33$a=Db::table("user")->delete(33);// 删除数据 34$b=Db::table("user")->delete(34);// 判断条件if ($a && $b) {// 提交事务Db::commit();return true;}else{// 回滚事务Db::rollback();return false;} 二 。

model 层执行的数据操作 返回 TRUE 和 false controller 判断 成功或者失败

// 启动事务 Db::startTrans();try{ // 执行循环插入数据之前先清空 数据表中当前角色的权限; $info['id'] 角色 $deleteRes = Db::name('role_node')->where('rid',$info['id'])->delete();if(!$deleteRes){ Db::rollback(); return false;} // 循环插入新的 角色权限 for ($i = 0; $i < count($info['role']); $i++){ Db::name('role_node')->insert(['rid' => $info['id'], 'nid' => $info['role'][$i]]); } // 更新成功 提交事务 Db::commit(); return true;} catch (Exception $e) { // 更新失败 回滚事务 Db::rollback(); return false;} 1、事务举例舒心的奇迹 银行卡 1000, 甜蜜的咖啡豆 银行卡 500, 舒心的奇迹给甜蜜的咖啡豆转账2001) 银行 先扣除 舒心的奇迹的2002) 银行 将200 给了甜蜜的咖啡豆

mysql事务 要求 数据库的引擎必须 InnoDB

**使用**-------------------------------------------------1、自动控制事务Db::transaction(function(){// 删除第一条数据Db::table("user")->delete(40);// 删除第二条数据Db::table("user")->delete(41);});-------------------------------------------------2、手动控制事务 (***)// 开启事务Db::startTrans();// 事务try{// 删除数据id 31$a=Db::table("user")->delete(31);// 判断是否删除成功if (!$a) {Db::rollback();throw new Exception("删除id 31 数据没有成功");}// 删除不存在的数据 id 32$b=Db::table("user")->delete(32);// 判断是否删除成功if (!$b) {Db::rollback();throw new Exception("删除id 32 数据没有成功");}// 执行提交操作Db::commit();}catch(Exception $e){// 回滚事务Db::rollback();// 获取提示信息dump($e->getMessage());}------------------------------------------------3.// 开启事务Db::startTrans();// 删除数据 33$a=Db::table("user")->delete(33);// 删除数据 34$b=Db::table("user")->delete(34);// 判断条件if ($a && $b) {// 提交事务Db::commit();}else{// 回滚事务Db::rollback();}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。