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

在对多表进行操作的时候

基本上都离不开事务。

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


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

tinkphp3.2.3 关于事务处理。的更多相关文章

  1. In-Memory:内存优化表的事务处理

    内存优化表(Memory-Optimized Table,简称MOT)使用乐观策略(optimistic approach)实现事务的并发控制,在读取MOT时,使用多行版本化(Multi-Row ve ...

  2. 读书笔记--SQL必知必会20--管理事务处理

    20.1 事务处理 使用事务处理(transaction processing),通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性. 如果没有错误发生,整组语句提交给数据库表 ...

  3. EntityFramework 事务处理

    默认情况下,当EF调用SaveChanges()时,会把生成的所有SQL命令“包”到一个“事务(transaction)”中,只要有一个数据更新操作失败,整个事务将回滚. 在多数情况下,如果你总在数据 ...

  4. Java事务处理

    Java事务处理总结     一.什么是Java事务   通常的观念认为,事务仅与数据库相关.   事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(co ...

  5. PHP与MYSQL事务处理

    /*MYSQL的事务处理主要有两种方法.1.用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认2.直接用set来改变mysql的 ...

  6. 已经过事务处理的 MSMQ 绑定(转载)

    https://msdn.microsoft.com/zh-cn/biztalk/ms751493 本示例演示如何使用消息队列 (MSMQ) 执行已经过事务处理的排队通信. 注意 本主题的末尾介绍了此 ...

  7. SQLite剖析之事务处理技术

    前言 事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等.在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率.假设需要在一张表内一次插入20个人的 ...

  8. PHP系统声明式事务处理

    转自:http://www.jianshu.com/p/34261804bc45 1.数据库事务 事务(Transaction)是并发控制的基本单位.所谓的事务,它是一个操作序列,这些操作要么都执行, ...

  9. 事务处理-回滚(转账操作)(转自http://www.cnblogs.com/void-m/p/6143540.html)

    JDBC事务处理-四大原则 原子性一致性隔离性持久性 第一步:实现转账操作 假设在账户中,盖伦有余额5000元,赵信有余额2000元, 盖伦要向赵信转账1000元. 1 2 3 4 5 6 7 8 9 ...

随机推荐

  1. Mybitis+springMVC 套路

    springMVC:确保能够扫描到所有注解 <!-- 使用Annotation自动注册Bean,只扫描@Controller --> <context:component-scan ...

  2. samba多用户

    注意的点 1:安装 服务器  yum install -y samba* 客户端  yum install -y samba-client  cifs-utils 服务器端和客户端网络能ping通 2 ...

  3. javascript 获取标签内的内容

    js 获取标签内的内容 参考:这篇博客给了我很大的启发. http://www.cnblogs.com/breakdown/archive/2012/10/09/2716221.html 我遇到的问题 ...

  4. 关于CRTP(Curiously Recurring Template Prattern)的使用

    在阅读frameworks/rs/cpp/util/RefBase.h之LightRefBase时,我记得<C++设计新思维>里对这种用法是有过介绍的,可是今天翻箱倒柜,怎么都找不到那本奇 ...

  5. A - Chips

    Gerald plays the following game. He has a checkered field of size n × n cells, where m various cells ...

  6. 高效 MacBook 工作环境配置

    转自:https://mp.weixin.qq.com/s/sloc6HgKcosXtWcbMB_5hA 工欲善其事,必先利其器,工具永远都是用来解决问题的,没必要为了工具而工具,一切工具都是为了能快 ...

  7. 解密QQ号

    啊哈~ ---------------------------------------------------------- http://bbs.ahalei.com/thread-4489-1-1 ...

  8. hdu1798(圆的位置关系)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1798 题意:给出两个圆的圆心坐标与半径,求他们相交部分的大小 思路:有三种情况: 1. 两圆相离,ar ...

  9. luogu p4174 最大获利(最大权闭合子图)

    luogu p4174 最大获利(最大权闭合子图) 给定n个点,m条边,每条边有一个贡献,每个点有一个代价.选择一条边,会付出边所连两个点的代价,问最大代价. 我们换个建图方式:把图G中的边\(e_i ...

  10. cenos 上的php 支持GD库问题

    ---恢复内容开始--- thinkphp 开发的项目verify类无法引用,原因是没有开启gd库 环境:CentOS 6.4,php-5.3.3需求:php支持GD库解决方案:GD是Linux下的一 ...