PDO的事物处理机制
Mysql的事务处理:
1.MySQL目前只有InnoDB 和BDB两个数据表类型才支持事务。
2.在默认条件下,MySQL是以自动提交(autocommit)模式运行的,这就意味着所执行的每一个语句都将立即写入数据库中。但是事务中是不希望有自动提交的行为的。set autocommit = 0; //在当前的会话中关闭自动提交。
3.start transaction;//开始一个事务;
4.commit ; //提交一个事务
5.roolback ; //事务回滚,所有的操作都将被取消。
使用PDO编程的实例如下:
<?php
/*
*
* @Authors peng--jun
* @Email 1098325951@qq.com
* @Date 2016-01-22 14:12:03
* @Link http://www.cnblogs.com/xs-yqz/
* @version $Id$
==========================================
*/
header("Content-type: text/html; charset=UTF-8"); $pdo = new PDO("mysql:host=localhost;dbname=test","root","jun");
$pdo -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,); try {
$price = ;
$pdo -> beginTransaction();
$sql = "update account set cash = cash-{$price} where name = 'UserA'";
$affected_rows = $pdo -> exec($sql);
if ($affected_rows>) {
echo "userA 成功转出{$price}元人民币<br />";
} else {
throw new PDOException("UserA 转出失败".$sql);
} $sqlB = "update account set cash = cash+{$price} where name = 'UserB'";
$affected_rows = $pdo -> exec($sqlB);
if ($affected_rows>) {
echo "成功向userB转入{$price}元人民币";
} else {
throw new PDOException("UserB 转入失败");
} echo "交易成功!!!";
$pdo -> commit();
} catch (PDOException $e) {
echo "交易失败".$e -> getMessage();
$pdo -> rollback();
} $pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,);
?>
PDO的事物处理机制的更多相关文章
- Spring事物管理机制简单学习
首先spring并不直接管理事物,而是提供了多种事物管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现. Spring管理事物的接口是org.s ...
- spring事物传播机制 事物隔离级别
Spring事务类型详解: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. PROPAGATION_SUPPORTS--支持当前事务,如 ...
- 1024MySQL事物提交机制
转自 http://www.cnblogs.com/exceptioneye/p/5451960.html MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提 ...
- spring事物传播机制与隔离级别
转载自:http://www.blogjava.net/freeman1984/archive/2010/04/28/319595.html7个传播行为,4个隔离级别, Spring事务的传播行为和隔 ...
- Spring 事物机制
Spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的. 其本质是对方法前后进行拦截,然后在目标方法开始之前创建或 ...
- Spring 事物机制总结
Spring两种事物处理机制,一是声明式事务,二是编程式事务 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...
- 170608、Spring 事物机制总结
spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...
- 170323、Spring 事物机制总结
spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...
- 170110、Spring 事物机制总结
spring两种事物处理机制,一是声明式事物,二是编程式事物 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...
随机推荐
- Spring-----7、bean实例的创建方式及依赖配置
转载自:http://blog.csdn.net/hekewangzi/article/details/45648579
- java数据导出成 EXCEL
/** * * @param out 输出流 * @param maplist 数据 * @param title 标题 * @param headers 表头 * @param keys 表头对应的 ...
- js子页面获取父页面数据
做页面预览的时候,数据没有存入数据库,但是要打开一个页面进行预览,询问众大婶,原来是这样来做. 1.父页面 <input type="text" id="name& ...
- HTML5的结构学习(2) --- 新增的非主体结构元素
除了上一篇学习到的主体结构元素之外,html5还增加了一些表示逻辑结构和附加信息的非主体结构元素: 1.header 解释:一种具有引导和导航作用的结构元素. 用途:通常用来放置整个页面或者页面内某一 ...
- 从数据库中导出.csv文件
需求: 本次将数据库中的数据导出成.csv文件(office可以打开), //数据的生成,根据你所选中的数据进行生成 //params:$activity_id -> 活动的id //param ...
- coco2d-x中的坐标系问题
(1)OpenGL坐标系 Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系.该坐标系原点在屏幕左下角,x轴向右,y轴向上. (2)屏幕坐标系 屏幕坐标系使用的 ...
- zeromq-python使用
安装参考saltstack编译安装.note 官方使用文档: http://zguide.zeromq.org/page:all 中文翻译文档: http://iyuan.iteye.com/blog ...
- DTS结构及其编译方法
一.主要问题1,需要了解dtsi与dts的关系2,dts的结构模型3,dts是如何被编译的,以及编译后会生成一个什么文件. 二.参考文字1,DTS(device tree source).dts文件是 ...
- NFC通信的模式选择
原帖请参照:http://www.nfcchina.org/forum.php?mod=viewthread&tid=68&extra=page%3D1 1.nfc 怎么选择操作模式的 ...
- Matalab之模糊KMeans实现
这节继续上节的KMeans进行介绍,上节主要是对模糊KMeans方法的原理做了介绍,没有实践印象总是不深刻,前段时间有个师姐让我帮着写了个模糊KMeans的算法,今天就拿她给出的例子来对这个方法做个实 ...