Blogger Information
Blog 65
fans 1
comment 1
visits 118976
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
tp5 事务处理
技术宅的博客
Original
3949 people have browsed it

比如:你给我转账10000块,需要把你的余额减10000,我的加10000,如果万一我的余额写入失败,那么理应你的余额不变,  不然这10000就蒸发了

Db::startTrans();
try{
   $res1=Db::table('think_user')->find(1);
   $res2=Db::table('think_user')->delete(1);
   /*
       这里需要抛出异常 才会执行回滚 
       这个tp5的实例  Db类会自动抛出异常 所以不用判断 
       最好的是加上判断
   */
   if($res1 && $res2){
       // 提交事务
       Db::commit(); 
       // 提示成功语句
   }
 } catch (\Exception $e) {
   // 回滚事务
   Db::rollback();
   // 提示失败语句
}

特别注意是 数据库 必须是InonDb引擎才支持事务,如果此方法没有效果时 请及时检查涉及的表是否是InonDb引擎

看你的mysql现在已提供什么存储引擎:

show engines;

看你的mysql当前默认的存储引擎:

show variables like '%storage_engine%';

你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):

show create table 表名;

修改表引擎方法

alter table 表名 engine=innodb;




Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post