简单的网站建设,苏州网络推广优化,有没有免费做物流推荐的网站,国产99做视频网站使用事务首先要数据库支持事务#xff1b; 如下MySQL数据库user表开启事务支持#xff0c;即设计表-引擎设置为InnoDB-保存
事务处理
1. 数据库的表引擎需要是 InnoDB 才可以使用#xff0c;如果不是调整即可#xff1b;
2. 事务处理#xff0c;需要执行多个 SQ…使用事务首先要数据库支持事务 如下MySQL数据库user表开启事务支持即设计表-引擎设置为InnoDB-保存
事务处理
1. 数据库的表引擎需要是 InnoDB 才可以使用如果不是调整即可
2. 事务处理需要执行多个 SQL 查询数据是关联恒定的
3. 如果成功一条查询改变了数据而后一条失败则前面的数据回滚
4. 比如蜡笔小新给路飞 3 快钱自己-3对方3这时需要事务处理
5. 系统提供了两种事务处理的方式第一种是自动处理出错自动回滚
Db::transaction(function () {Db::name(user)-where(id, 19)-save([priceDb::raw(price - 3)]);Db::name(user1)-where(id, 20)-save([priceDb::raw(price 3)]);
});
事务回调函数内部给外部变量赋值方便操作后根据结果做判断
public function trans(){$res10;$res20;$res[];Db::transaction(function ()use($res,$res1,$res2){$res1Db::table(user)-where([nameqc])-setDec(age,2);$res2Db::table(user)-where([nameqzy])-setInc(age,2);$resDb::table(user)-where([nameqc])-find();});if($res1$res2){dump($res1);dump($res2);dump($res);}return 123;
}6. 手动处理基本和原生处理类似可以自行输出错误信息
//启动事务
Db::startTrans();
try {Db::name(user)-where(id, 19)-save([priceDb::raw(price - 3)]);Db::name(user1)-where(id, 20)-save([priceDb::raw(price 3)]);//提交事务Db::commit();
} catch (\Exception $e) {echo 执行 SQL 失败;//回滚Db::rollback();
}