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

在对多表进行操作的时候

基本上都离不开事务。

有的操作,是要由上一操作后,产的值(如主表里插入后,要获取插入的主键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("事务回滚"); } }


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

最新文章

  1. 如何在centos下部署Node环境
  2. 计算字符数组长度,用strlen 与 sizeof 的原理与区别
  3. 安装SQL2008 提示 创建usersettings/microsoft.sqlserver.configuration.landingpage.properties.se
  4. AS-demo09
  5. sencha touch 开发准备
  6. Ajax实现搜索栏中输入时的自动提示功能
  7. 利用hadoop自带程序运行wordcount
  8. 得到内网域管理员的5种常见方法&lt;转&gt;
  9. DICOM开源库
  10. 常用LINUX脚本汇总(1)
  11. Qt 设置背景图片3种方法(QPalette可以做无数的事情,一旦控件指定了调色板,就要乖乖听它的话;QPainter当场绘制当然也没有问题,还有就是QSS)
  12. C语言生成2000w行数据
  13. 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v4.1.2版)
  14. 运行期以索引获取tuple元素-C++14
  15. git 菜鸟入门
  16. 1.2.7 Excel表格打印技巧
  17. [nowcoderACM_223C][区区区间间间]
  18. swagger 基础入门
  19. HTML(五)选择器--伪类选择器
  20. MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)(转)

热门文章

  1. 【IMOOC学习笔记】多种多样的App主界面Tab实现方法(二)
  2. C++ string操作(转载)
  3. Algorithms - Merging Sort
  4. .Net Core Api 使用版本控制
  5. 659. Split Array into Consecutive Subsequences
  6. D. 代码填空:LIS
  7. loj #2143. 「SHOI2017」组合数问题
  8. Mysql(Linux服务器)root用户密码忘记重置方法
  9. 2019.2.10考试T2, 多项式求exp+生成函数
  10. NOIP后省选集训前文化课划水记