zoukankan      html  css  js  c++  java
  • tinkphp3.2.3 关于事务处理。

    自己做一个测试,关于事务处理的。

    在对多表进行操作的时候

    基本上都离不开事务。

    有的操作,是要由上一操作后,产的值(如主表里插入后,要获取插入的主键ID值,返回给下面处理表用。)带到后面的表处理当中去。

    按照ThinkPHP里现在的一个就是批量插入操作。其它的好像就没有了,但是看了框架里的批量插入 Model->addAll() 方法好像也没有事务处理。

    要想开始事务话,我是这样来做的,但好像还真管用。标记一下

        public function testStartTrans() {
            $m = D("Blog");
            $m->startTrans();
            lhb_printf("开启事务");
    //      cate表字段  pid,name,remark,sort
            $cat = D("Cate")->addCate(array(
    //            "id" => 1, 
                "pid" => 0, "name" => "test1", "remark" => "test remakr1", "sort" => 1000,
            ));
    <pre name="code" class="php">        $result = $m->add(array(
    //            "id" => 1,
                "cid" => "1", "title" => "测试事务处理", "summary" => "摘要", "content" => "内容", "time" => time(), "click" => 123, "del" => 0
            ));

     //blog_attr表字段 attr_id,blog_id $blogAtt = D("BlogAttr")->addBlogAttr(array( array("attr_id" => 1, "blog_id" => $result), array("attr_id" => 2, "blog_id" => $result), array("attr_id" => 3, "blog_id" => $result), )); //attr 表字段 id,`name`,color $attr = D("Attr")->addAttr(array( "name" => "test_attr1","color" => "#123456", )); if ($attr && $blogAtt && $cat && $result) { $m->commit(); lhb_printf("事务提交"); } else { $m->rollback(); lhb_printf("事务回滚"); } }

    
    
    主要是用于测试,所以这四张表之间,有的有关系 ,有的没有关系,就是还是看事务是否提交了。


  • 相关阅读:
    转载--Linux命令top动态观察程序的变化
    转载--C语言运算符优先级和口诀
    区别typedef和#define
    spring+springmvc+mybatis xml配置文件
    解决SmartGit序列号问题
    通过SmartGit把java maven项目传到码云
    301跳转
    mybatis之联表查询
    MySQL不常用、易忽略的小知识
    JavaScript精进篇
  • 原文地址:https://www.cnblogs.com/xiaotuni/p/7208850.html
Copyright © 2011-2022 走看看