ThinkPHP5中的事务操作

使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。
ThinkPHP5.0
使用transaction 方法操作数据库事务,当发生异常会自动回滚,例如:
自动控制事务处理
Db::transaction(function(){
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);});也可以手动控制事务,例如:
// 启动事务Db::startTrans();try{
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
// 提交事务
Db::commit(); } catch (\Exception $e) {
// 回滚事务
Db::rollback();}ThinkPHP5.1
最简单的方式是使用 transaction 方法操作数据库事务,当闭包中的代码发生异常会自动回滚,例如:
Db::transaction(function () {
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);});也可以手动控制事务,例如:
// 启动事务Db::startTrans();try {
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
// 提交事务
Db::commit();} catch (\Exception $e) {
// 回滚事务
Db::rollback();}注意在事务操作的时候,确保你的数据库连接使用的是同一个。
V5.1.13+版本开始,可以支持MySQL的XA事务用于实现全局(分布式)事务,你可以使用:
Db::transactionXa(function () {
Db::connect('db1')->table('think_user')->delete(1);
Db::connect('db2')->table('think_user')->delete(1);}, [Db::connect('db1'),Db::connect('db2')]);要确保你的数据表引擎为InnoDB,并且开启XA事务支持。
以上是ThinkPHP5中的事务操作的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热AI工具
Undress AI Tool
免费脱衣服图片
Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片
AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。
Clothoff.io
AI脱衣机
Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!
热门文章
Oguri Cap Build Guide |漂亮的德比志
3 周前
By Jack chen
Agnes Tachyon Build Guide |漂亮的德比志
3 周前
By Jack chen
Grass Wonder Build Guide |乌玛妈妈漂亮的德比
2 周前
By Jack chen
峰如何表现
1 个月前
By Jack chen
如何修复KB5060829未安装和其他报告的错误
3 周前
By DDD
热工具
记事本++7.3.1
好用且免费的代码编辑器
SublimeText3汉化版
中文版,非常好用
禅工作室 13.0.1
功能强大的PHP集成开发环境
Dreamweaver CS6
视觉化网页开发工具
SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

