联系官方销售客服

1835022288

028-61286886

求助 版主:官方研发技术组
求助事务操作,看文档没有找到事务的操作啊
类型:迅睿CMS 更新时间:2020-12-06 17:28:07

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

回帖
  • moxiao
    #1楼    moxiao
    2020-12-02 10:01:34
    Chrome 0
    给我发了一个ci框架的文档信息,但是不知道怎么使用呀!你现在会用了吗
  • 一个网名
    #2楼    一个网名
    2020-12-02 10:15:19
    Chrome 0
    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楼    moxiao
    2020-12-02 10:16:02
    Chrome 0
    谢谢,我去试一下吧
  • 命运一切皆随缘
    #4楼    命运一切皆随缘
    2020-12-02 10:35:47
    Chrome 0
    直接用sql事物啊
  • 一个网名
    #5楼    一个网名
    2020-12-06 17:27:51
    Chrome 0
    经测试,已找到方法:
    $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
    Chrome 0
    @一个网名:已解决~已解决~