PDO事务处理

2014-9-3 10:44:19 By jiancaigege
====================================

概要:将多条sql操作(增删改)作为一个操作单元,要么都成功,要么都失败。
单条数据不用事务处理
被操作的表必须是innoDB类型的表(支持事务)
MySQL常用的表类型:MyISAM(非事务)增删改速度快、InnodB(事务型)安全性高

更改表的类型为innoDB类型
mysql> alter table stu engine=innodb;

使用:
在PDO预处理的基础上添加,如下格式:

try{

$m->beginTransaction();//开启事务处理

//PDO预处理以及执行语句...

$m->commit();//提交事务

}catch(PDOException $e){

$m->rollBack();//事务回滚
//相关错误处理
}

示例:

$m = new PDO($dsn,$user,$pwd);
$m->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
try{
$m->beginTransaction();//开启事务处理 $stmt=$m->prepare("insert into stu(name,sex,age,classid)values(?,?,?,?)");
$data=array(
array("user1",1,22,"lamp76"),
array("user2",1,20,"lamp76"),
array("user3",0,22,"lamp76")
);
foreach($data as $v){
$stmt->execute($v);
echo $m->lastInsertId();
}
$m->commit();
echo "提交成功!";
}catch(PDOException $e){
$m->rollBack();//回滚
die("提交失败!");
}

PDO事务处理的更多相关文章

  1. php -- PDO事务处理

    事务处理流程 开启事务 PDO::beginTransaction 事务操作 所有的实务操作就是增删改 事务提交 PDO::commit:成功后提交数据 PDO::rollback:失败后回滚数据 & ...

  2. PHP PDO事务处理及MYSQLengine=InnoDB

    如果出现“#skip-innodb”则将“#”去掉,重启MySQL: 如果第一条无法解决,加上配置:default-storage-engine=InnoDB 再重启MySQL. 进入MYsql数据据 ...

  3. pdo + 事务处理 处理线性事务

    /* * 事物处理线性操作. * 以转账为例 */ header('Content-type:text/html;charset=utf-8'); $opt = array(PDO::ATTR_PER ...

  4. php大力力 [050节] 兄弟连高洛峰 PHP教程 2014年[数据库、PDO教程]

    php大力力 [050节] 兄弟连高洛峰 PHP教程 2014年[数据库.PDO教程] 第14章 数据库252.[2014]兄弟连高洛峰 PHP教程14.1.1 复习数据库[已发布,点击下载]253. ...

  5. PDO基础知识

    使用PDO之前首先开启PHP的PDO扩展,方法见百度. PDO连接数据库的方式有三种 1.通过参数的形式连接数据库 (推荐) //通过参数形式连接数据库 try{ $dsn = 'mysql:host ...

  6. PHP17 PDO

    学习要点 PDO简要 PDO对象 PDO对象的使用 PDOStatement对象 PDO事务处理 PDO简要 PHP支持那些数据库操作 MySQL,Oracle,SQLServer,SQLite.Po ...

  7. MySQL 、PDO对象

    目录 1, singleton 2, pdo与db 3, singleton获取pdo 4, pdo实现db增删改查 5, pdo异常处理exception 6, pdo预处理prepare 7, p ...

  8. 数据库PDO简介

    php简介,php历史,php后端工程师职业前景,php技术方向,php后端工程师职业体系介绍. php是世界上使用最广泛的web开发语言,是超文本预处理器,是一种通用的开源脚本语言,语法吸收了c语言 ...

  9. PDO 小知识

    一.前言 PDO(PHP Data Object)提供了一个通用接口访问多种数据库,即抽象的数据模型支持连接多种数据库. PDO扩展为PHP定义了一个访问数据库的轻量.持久的接口.其本身并不能实现任何 ...

随机推荐

  1. SQL Server 2012安装后找不到服务器名称的解决办法!!!

    网上说使用localhost即可,确实没错,但是有的仍旧会报出无法找到错误,我在无法通过的时候又重新安装了SQLServer,这次选中全部默认安装,之前使用的是选择安装,然后发现多了几个配置,其中有一 ...

  2. python语言特性及其数据类型

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

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

  4. 1014 : Trie树 hihocoder

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. ...

  5. 【转】Python中的赋值、浅拷贝、深拷贝介绍

    这篇文章主要介绍了Python中的赋值.浅拷贝.深拷贝介绍,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式,需要的朋友可以参考下   和很多语言一样,Python中 ...

  6. Django-简单项目创建

    在磁盘中找到需要存放项目代驾的目录,进入该目录(本机为: /Downloads/All) 输入Django创建项目命令:django-admin startproject mysite,此时在目录下会 ...

  7. [转]Java学习日记之 volatile

    用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致的情况.volatile就是用来 ...

  8. 代写assignment

    集英服务社,强于形,慧于心 集英服务社,是一家致力于优质学业设计的服务机构,为大家提供优质原创的学业解决方案.多年来,为海内外学子提供了多份原创优质的学业设计解决方案. 集英服务社,代写essay/a ...

  9. PYTHON学习之路_PYTHON基础(10)

    学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...

  10. addScalar 显式指定返回数据的类型

    sql: select a.id as 受理 from a SQLQuery sqlQuery=this.getSession().createSQLQuery(sb.toString()).addS ...