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