TP5 的事务操作
事务的基本概念就不说了:
直接上代码:
use think\Db;
// 事务测试 public function transTest() { // 手动控制事务的提交 Db::startTrans(); try { $res1 = Db::name('admin')->delete(2); $res2 = Db::name('admin')->update(['admin_id' => 3, 'admin_username' => '测试']); // 提交事务 if ($res1 && $res2){ Db::commit(); $rtn = [ 'code' => 1, 'msg' => '成功', ]; }else{ Db::rollback(); $rtn = [ 'code' => 0, 'msg' => '操作失败' ]; } } catch (\Exception $e) { // 捕获异常,回滚事务 Db::rollback(); $rtn = [ 'code' => 0, 'msg' => $e->getMessage() ]; } return $rtn; }
catch 说明:
- catch 捕获的是 SQL执行的异常,比如根本不存在该字段或者数据表。
- 如果语句都正确,只是 SQL 返回了 false,是不会抛出异常的。
- 例子:比如删除 id=1000 的数据,该数据不存在会返回 false,但是这句 sql 是正确的,只是执行的结果为 0 而已。
——占位符
——————————————————————//////——欢迎光临,请多指教!可加QQ:349017128进行交流——//////——————————————————————
浙公网安备 33010602011771号