tinkphp3.2.3 关于事务处理。
2015-08-24 11:24
591 查看
自己做一个测试,关于事务处理的。
在对多表进行操作的时候
基本上都离不开事务。
有的操作,是要由上一操作后,产的值(如主表里插入后,要获取插入的主键ID值,返回给下面处理表用。)带到后面的表处理当中去。
按照ThinkPHP里现在的一个就是批量插入操作。其它的好像就没有了,但是看了框架里的批量插入 Model->addAll() 方法好像也没有事务处理。
要想开始事务话,我是这样来做的,但好像还真管用。标记一下
//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("事务回滚"); } }
主要是用于测试,所以这四张表之间,有的有关系 ,有的没有关系,就是还是看事务是否提交了。
在对多表进行操作的时候
基本上都离不开事务。
有的操作,是要由上一操作后,产的值(如主表里插入后,要获取插入的主键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("事务回滚"); } }
主要是用于测试,所以这四张表之间,有的有关系 ,有的没有关系,就是还是看事务是否提交了。
相关文章推荐
- OLAP/OLTP介绍与比较
- File(2) listFiles 文件过滤(FileFilter) 父目录getParentFile
- YIi配置debug工具、yii配置gii工具
- PHP5.1以上版本使用Date函数时遇到警告的处理办法
- php线程实现
- php抓取页面的几种方式
- PHP的单引号和双引号
- 实现PHP的编译执行分离(separatingcompilation and execution)
- 深入理解Zend SAPIs(Zend SAPI Internals)
- PHP函数原理(Introspecting PHP Function)
- 深入理解PHP原理之Opcodes
- PHP的优良习惯(转)
- 启用windows 7自带FTP教程
- php SQL 防注入的一些经验
- PHP环境搭建
- 统计php更改文件,可疑文件
- php实现递归的三种基本方式
- php析构函数的简单使用说明
- vsftpd配置文件详解
- php大力力 [011节] PHP常量使用场景