Mysql的事务处理:

1.MySQL目前只有InnoDB 和BDB两个数据表类型才支持事务。

  2.在默认条件下,MySQL是以自动提交(autocommit)模式运行的,这就意味着所执行的每一个语句都将立即写入数据库中。但是事务中是不希望有自动提交的行为的。set autocommit = 0; //在当前的会话中关闭自动提交。

 3.start transaction;//开始一个事务;

 4.commit ; //提交一个事务

 5.roolback ; //事务回滚,所有的操作都将被取消。

使用PDO编程的实例如下:

  1. <?php
  2. /*
  3. *
  4. * @Authors peng--jun
  5. * @Email 1098325951@qq.com
  6. * @Date 2016-01-22 14:12:03
  7. * @Link http://www.cnblogs.com/xs-yqz/
  8. * @version $Id$
  9. ==========================================
  10. */
  11. header("Content-type: text/html; charset=UTF-8");
  12.  
  13. $pdo = new PDO("mysql:host=localhost;dbname=test","root","jun");
  14. $pdo -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  15. $pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,);
  16.  
  17. try {
  18. $price = ;
  19. $pdo -> beginTransaction();
  20. $sql = "update account set cash = cash-{$price} where name = 'UserA'";
  21. $affected_rows = $pdo -> exec($sql);
  22. if ($affected_rows>) {
  23. echo "userA 成功转出{$price}元人民币<br />";
  24. } else {
  25. throw new PDOException("UserA 转出失败".$sql);
  26. }
  27.  
  28. $sqlB = "update account set cash = cash+{$price} where name = 'UserB'";
  29. $affected_rows = $pdo -> exec($sqlB);
  30. if ($affected_rows>) {
  31. echo "成功向userB转入{$price}元人民币";
  32. } else {
  33. throw new PDOException("UserB 转入失败");
  34. }
  35.  
  36. echo "交易成功!!!";
  37. $pdo -> commit();
  38. } catch (PDOException $e) {
  39. echo "交易失败".$e -> getMessage();
  40. $pdo -> rollback();
  41. }
  42.  
  43. $pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,);
  44. ?>

PDO的事物处理机制的更多相关文章

  1. Spring事物管理机制简单学习

    首先spring并不直接管理事物,而是提供了多种事物管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现. Spring管理事物的接口是org.s ...

  2. spring事物传播机制 事物隔离级别

    Spring事务类型详解: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. PROPAGATION_SUPPORTS--支持当前事务,如 ...

  3. 1024MySQL事物提交机制

    转自 http://www.cnblogs.com/exceptioneye/p/5451960.html MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提 ...

  4. spring事物传播机制与隔离级别

    转载自:http://www.blogjava.net/freeman1984/archive/2010/04/28/319595.html7个传播行为,4个隔离级别, Spring事务的传播行为和隔 ...

  5. Spring 事物机制

    Spring两种事物处理机制,一是声明式事物,二是编程式事物  声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的. 其本质是对方法前后进行拦截,然后在目标方法开始之前创建或 ...

  6. Spring 事物机制总结

    Spring两种事物处理机制,一是声明式事务,二是编程式事务 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...

  7. 170608、Spring 事物机制总结

    spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...

  8. 170323、Spring 事物机制总结

    spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...

  9. 170110、Spring 事物机制总结

    spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...

随机推荐

  1. hdu2952Counting Sheep

    Problem Description A while ago I had trouble sleeping. I used to lie awake, staring at the ceiling, ...

  2. [Spring Boot Reference Guide] 读书笔记一 Getting Started

    8. Introducing Spring Boot Goals of spring boot: Provide a radically faster and widely accessible ge ...

  3. C语言-数据的快速引用

    1.常量:程序运行中,不会改变 整形常量 实形常量 字符常量:使用单引号引起的单个字符或者转移字符 ‘a’ 字符串常量:使用双引号引起的单个或者多个字符序列 "ab",存储的时候, ...

  4. php讲中文json数据编码

    <?php function show_jsonmsg($data){ if(is_array($data)){ $return = $data; }else{ $return = array( ...

  5. jQuery Validate 插件验证,,返回不同信息(json remote)自定义

    问题 申请账号需要确认该账号是存在 jquery.validate.js中的remote Jquery Ajax获取后台返回的Json数据后,添加自定义校验 解题思路:输入的登陆信息远程验证是否该账号 ...

  6. php 对数组按某个字段进行排序

    //$arrays 需要排序的数组,$sort_key 需要排序的键名称 function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_ ...

  7. python操作redis-hash

    #!/usr/bin/python #!coding: utf-8 import redis if __name__=="__main__": try: conn=redis.St ...

  8. linux function

    #!/bin/bash function sayHello() { #这里的{ 和它前面的)之间可以没有空格 echo "Hello $1" } sayHello 'Neeky'

  9. DEP受保护的问题(尤其是Outlook)

    We see this issue quite regularly as we use MAPI and lots of our users run our application on TS. Of ...

  10. LinearLayout的gravity属性以及其子元素的layout_gravity何时有效;RelativeLayout如何调整其子元素位置只能用子元素中的属性来控制,用RelativeLayout中的gravity无法控制!!!

    LinearLayout的gravity属性以及其子元素的layout_gravity何时有效:RelativeLayout如何调整其子元素位置只能用子元素中的属性来控制,用RelativeLayou ...