开启事务/结束事务
Posted ningjiabing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开启事务/结束事务相关的知识,希望对你有一定的参考价值。
/** * 开启事务 * * @param function $callback 可选, 事务之内的业务逻辑, 抛出异常回滚或成功时返回消息 * @return bool/exception/string 未设置参数时返回true, 出错时返回ThinkException异常对象, 成功时返回提示消息 */ public static function start($callback = null) { D()->startTrans(); if ($callback && is_callable($callback)) { try { return $callback(); } catch (ThinkException $e) { return $e; } } return true; } /** * 结束事务 * * @param string/object $msg 可选, 成功时为消息, 出错时为异常对象 * @param boolean $success 可选, 是否提交事务, 默认true, 设置为false则执行回滚 * @return bool/exception/string 未设置参数时返回true, 出错时返回ThinkException异常对象, 成功时返回提示消息 */ public static function end($msg = ‘‘, $success = true) { // 如果$msg传递为异常类 则抛出错误信息 if (is_object($msg)) { $obj = new ReflectionClass($msg); do { if ($obj->name == ‘Exception‘) { $success = false; $msg = $msg->getMessage(); break; } } while ($obj = $obj->getParentClass()); } if ($success) { D()->commit(); } else { D()->rollback(); } $action = $success ? ‘success‘ : ‘error‘; return [ ‘status‘ => $action, ‘msg‘ => $msg ]; }
以上是关于开启事务/结束事务的主要内容,如果未能解决你的问题,请参考以下文章