PDO事务控制

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $dsn=‘mysql:host=localhost;dbname=test‘;
  $pdo=new PDO($dsn,‘root‘,‘‘);
  $pdo->exec(‘set names utf8‘);

  $pdo->beginTransaction(); //开启事务

  $sql1="UPDATE users SET money=money+100 WHERE id=100";
  $res1=$pdo->exec($sql1);
  $sql2="UPDATE users SET money=money+100 WHERE id=2";
  $res2=$pdo->exec($sql2);

  if ($res1>0 && $res2>0) {
    $pdo->commit(); //事务提交
    echo ‘操作成功‘;
  }else {
    $pdo->rollback(); //事务回滚
    echo ‘操作失败‘;
  }
  $pdo->setATTribute(PDO::ATTR_AUTOCOMMIT,1); //事务结束后,还原设置为自动提交单独语句
  $pdo=null;  //关闭连接
 ?>

PDO操作MySql的方式中。$pdo->exec($sql):返回受影响的条数

MySQLi的方式中。还需要调用 affected_rows();才可以获取受影响的条数

原文地址:https://www.cnblogs.com/t-young1201/p/10153572.html

时间: 2024-10-13 10:18:06

PDO事务控制的相关文章

Spring MVC一事务控制问题

在最近一个项目中用了Spring MVC作为控制层框架,但却出现了一个让人很费解的问题:事务控制. Spring MVC的配置文件名为:springMVC-servlet.xml,内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:/

Spring 的官方的事务控制

Spring 官方版的事务控制 什么是事务? 事务是数据库(RDB)保证业务操作完整性的一种机制(强一致性) 事务在那里控制 业务层控制(Service 或Biz 或Business) 如何控制事务(不同的底层不同的控制) 如果是JDBC:----Connnection Connection.setAutoCommit(false) Connection.commit() Connection.rollback() 如果是Hibernate ------Session ---SessionFac

spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

1 //假设这是一个service类的片段 2 3 try{ 4 //出现异常 5 } catch (Exception e) { 6 e.printStackTrace(); 7 //设置手动回滚 8 TransactionAspectSupport.currentTransactionStatus() 9 .setRollbackOnly(); 10 } 11 //此时return语句能够执行 12 return xxx; 如上: 当我们需要在事务控制的service层类中使用try cat

程序中事务控制

事务控制概述 编程式事务控制          自己手动控制事务,就叫做编程式事务控制. Jdbc代码: Conn.setAutoCommite(false);  // 设置手动控制事务 Hibernate代码: Session.beginTransaction();    // 开启一个事务 [细粒度的事务控制: 可以对指定的方法.指定的方法的某几行添加事务控制] (比较灵活,但开发起来比较繁琐: 每次都要开启.提交.回滚.) 声明式事务控制 Spring提供了对事务的管理, 这个就叫声明式事

(8)Spring的事务控制

程序的"事务控制", 可以用aop实现! 即,只需要写一次,运行时候动态植入到业务方法上. Spring提供了对事务的管理. 1.事务控制概述 用户访问-->Action --> Service --> Dao 一个业务操作的成功: 调用的service是执行成功的,意味着service中调用的所有的dao是执行成功的. 因此事务应该在Service层统一控制. 1.1.编程式事务控制 自己手动控制事务,就叫做编程式事务控制.这属于细粒度的事务控制: 可以对指定的方法

Java实战之03Spring-05Spring中的事务控制(基于AOP)

五.Spring中的事务控制(基于AOP) 1.Spring中事务有关的接口 1.1.明确: JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案 1.2.Spring事务管理主要包括3个接口 1.2.1.PlatformTransactionManager事务管理器 具体实现类: 1.2.2.TransactionDefinition事务定义信息 事务的隔离级别: 事务的传播行为:有时面试会问到 REQUIRED:如果当前没有事务,就新建一个事务

JDBC事务控制

JDBC事务控制事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功.例如转账,一方多了,一方少了同时执行.mysql数据库默认事务是自动提交的,即一条SQL语句就是一个单独的事务,是自动提交的.Oracle数据库默认是事务不是自动提交的,没一句都需要手动提交事务,否则默认为都是同一个事务.对于多条sql放在同一个事务中需要使用事务命令start transaction 开启事务(所有增删改查都在临时表中进行) Rollback 回滚事务(取消操作) Commit 提交事

EJB事务控制(CMT和BMT两种方式以及JTA事务)

一.EJB的事务管理分如下两个方面: 1.CMT(容器管理事务) 2.BMT(Bean管理事务) 二.CMT介绍: 容器管理事务主要是通过容器自动控制事务的开启,提交和回滚,开发人员不需要手工编写代码,由容器来控制事务的边界,一般来说是业务方法的开始 是事务的开启,业务方法的结束是事务的提交部分,当程序遇到运行时异常,事务会自动回滚.如果遇到非运行时异常想要回滚事务的话可以用SessionCon Text的setRollBackOnly()方法来达到目的.下面的例子是一个使用CMT的例子:(事务

spring的事务控制

1.事务介绍 (1)特性:ACID Atomicity(原子性):事务中的所有操作要么全做要么全不做 Consistency(一致性):事务执行的结果使得数据库从一个一致性状态转移到另一个一致性状态 Isolation(隔离性):一个事务的执行不受其他事务的干扰 Durability(永久性):一个事务一旦提交,对数据库的影响是永久性的 (2)事务并发问题 (3)       隔离级别 2.  Spring封装了事务管理操作 1.事务操作 打开事务  回滚事务   提交事务 2.事务操作对象 因