业务经理

微信扫描以上二维码

028-61286886

技术咨询

求助事务操作,看文档没有找到事务的操作啊

迅睿框架 更新 2020-12-06 17:28:07 一个网名

求助事务操作,看文档没有找到事务的操作啊,比如下单要写入order表、order_goods表、goods表库存-1,这三个操作必须同时完成,这种应该如何操作呢?

方案

  • moxiao #1 · 2020-12-02 10:01:34
    给我发了一个ci框架的文档信息,但是不知道怎么使用呀!你现在会用了吗
  • 一个网名 #2 · 2020-12-02 10:15:19
    moxiao ci4文档里面,找了一下,但是还没有测试
    $this->db->transStart();
    $this->db->query('sql1');
    $this->db->query('sql2');
    $this->db->query('sql3');
    $this->db->transComplete();
    应该是这样,如果按迅睿中的来的话,应该是
    \Phpcmf\Service::M()->db->transStart();
    \Phpcmf\Service::M()->db->query('sql1);
    \Phpcmf\Service::M()->db->query('sql2);
    \Phpcmf\Service::M()->db->query('sql3);
    \Phpcmf\Service::M()->db->transComplete();
    具体的还没有测试,你可以先试一下
  • moxiao #3 · 2020-12-02 10:16:02
    谢谢,我去试一下吧
  • 命运一切皆随缘 #4 · 2020-12-02 10:35:47
    直接用sql事物啊
  • 一个网名 #5 · 2020-12-06 17:27:51
    满意答案
    经测试,已找到方法:
    $data1 = ['name'=>'test_name_1'];
    $data2 = ['name'=>'test_name_2'];
    $data3 = ['name'=>'test_name_3'];
    \Phpcmf\Service::M()->db->transStart();
    \Phpcmf\Service::M()->db->table('test1')->insert($data1);
    \Phpcmf\Service::M()->db->table('test2')->insert($data2);
    \Phpcmf\Service::M()->db->table('test3')->insert($data3);
    
    // 成功执行提交
    \Phpcmf\Service::M()->db->transCommit();
    // 不成功执行回滚
    \Phpcmf\Service::M()->db->transRollback();
  • 一个网名 #6 · 2020-12-06 17:28:07
    @一个网名:已解决~已解决~

迅睿系统漏洞

站群分站系统
站群分站系统(2026-10-15)
子站域名新增llms.txt访问
GEO系统
GEO系统(2026-10-14)
修复下载zip空白地址问题 修复流量复刻和任务队列错误
GeoSeo收录宝
GeoSeo收录宝(2026-10-14)
新增 站长工具箱 前端首页自动调用meta 数据
滑块验证码 Gocaptcha
滑块验证码 Gocaptcha(2026-10-13)
基于开源项目 go-captcha 的行为验证码插件,滑动拼图、区域...
GeoSeo工具箱
GeoSeo工具箱(2026-10-13)
优化巡检任务
GeoSeo排名助手
GeoSeo排名助手(2026-10-11)
加入大模型自定义
SEO聚合关键字
SEO聚合关键字(2026-10-11)
优化关键字列表页最多支持1万篇文章,过多会导致服务器扛不住;
CMS内容同步复制
CMS内容同步复制(2026-10-10)
增加时间是否更新的开关