tp5/tp6 完整事务/异常例子(数据)分布式/单库/多库

网友投稿 819 2022-10-29

tp5/tp6 完整事务/异常例子(数据)分布式/单库/多库

tp5/tp6 完整事务/异常例子(数据)分布式/单库/多库

1、操作数据库的[单库]

// 启动事务Db::startTrans();try { throw new \Exception('插入数据失败!'); $code=200;$msg="成功"; // 提交事务 Db::commit();} catch (\Exception $e) { // 回滚事务 Db::rollback(); $code=-200; $msg=$e->getMessage();}return array('code'=>$code,'msg'=>$msg);

事务里边不能用db()数据库助手

2、操作数据库的[多个数据库](分布式)

// 启动事务Db::connect('mysql')->startTrans();try { throw new \Exception('插入数据失败!'); $code=200;$msg="成功"; // 提交事务 Db::connect('mysql')->commit();} catch (\Exception $e) { // 回滚事务 Db::connect('mysql')->rollback(); $code=-200; $msg=$e->getMessage();}return array('code'=>$code,'msg'=>$msg);

注意:

Db::connect('mysql')->startTrans();

mysql名称是根据数据库配置文件(config/database.php)来的

3、异常操作

TP6 一定要引用  use think\facade\Env;

try { //主体 } catch (\Exception $e) { // 这是进行异常捕获 return ['code'=>-200,'msg'=>$e->getMessage()]; } return json(['code' => $code,'msg' =>$msg]);

public function UserLogin($username,$password) { try { if(empty($username) || empty($password)){ throw new \Exception("用户名/密码为空!"); } $code=200;$msg='成功'; } catch (\Exception $e) { // 这是进行异常捕获 $code=-200;$msg=$e->getMessage(); } return ['code' => $code,'msg' =>$msg]; }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:静态代码块与普通代码块的区别及执行顺序
下一篇:Mirror 是一款基于 React,Redux 和 react-router 的前端框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~