PHP–ThinkPHP6.0 事务操作
博客说明
文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!
说明
都是先学功能,后面使劲的完善
看云文档地址
https://www.kancloud.cn/manual/thinkphp6_0/1037573
前提条件
使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL
的 MyISAM
不支持事务处理,需要使用 InnoDB
引擎
放这两张图片是因为要体现一下两种引擎
事务操作
使用 transaction
方法操作数据库事务,当闭包中的代码发生异常会自动回滚
//DbDb::transaction(function () {Db::table('think_user')->find(1);Db::table('think_user')->delete(1);});//modelDb::transaction(function () {User::where('id',$user_id)->find();User::where('id',$user_id)->delete();});
手动控制事务
// Db启动事务Db::startTrans();try {Db::table('think_user')->find(1);Db::table('think_user')->delete(1);// 提交事务Db::commit();} catch (\Exception $e) {// 回滚事务Db::rollback();}// model启动事务Db::startTrans();try {User::where('id',$user_id)->find();User::where('id',$user_id)->delete();// 提交事务Db::commit();} catch (\Exception $e) {// 回滚事务Db::rollback();}
感谢
ThinkPHP
以及勤劳的自己