PDO事物处理

原创 2015年11月20日 15:23:04
<?php
header("Content-Type:text/html;charset=utf-8");

//$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql =<<<SQL
CREATE TABLE user_account(
id int unsigned not null auto_increment comment '主键ID',
username varchar(30) not null comment '用户名',
money DECIMAL(10, 2) not NULL comment '用户余额',
PRIMARY KEY (id)
)engine=MYISAM;
SQL;
$pdo->exec($sql);

$sql = "INSERT INTO user_account(username, money) VALUES ('zhangsan', 10000)";
$pdo->exec($sql);
$sql = "INSERT INTO user_account(username, money) VALUES('lisi', 5000)";
$pdo->exec($sql);

try{
    $user = "user";
    $pwd = "pwd";
    $options = array(PDO::ATTR_AUTOCOMMIT, 0); // 关闭事物自动提交功能
    $pdo = new PDO("mysql:dbname=test;host=127.0.0.1", $user, $pwd, $options); // 链接PDO

    $pdo->beginTransaction(); // 开启事物
    $sql = "UPDATE user_account SET money = money - 500 WHERE id = 1"; //张三每次减少500
    $res = $pdo->exec($sql);
    if($res==0){ // 如果实行失败抛出异常, 事物回滚
        throw new PDOException(" transfer account error");
    }

    $sql = " UPDATE user_account SET money=money + 2000 WHERE id = 6 ";
    $res1 = $pdo->exec($sql);
    if($res1 == 0){
        throw new PDOException("李四 not transfer account info");
    }
    $pdo->commit(); // 全部执行成功,提交事物
}catch (PDOException $e){
    $pdo->rollBack(); // 失败, 事物回滚
    echo $e->getMessage();
}




PDO中事物处理

应用的方法如下: 开启事物——beginTransaction()方法 beginTransaction()方法将关闭自动提交(autocommit)模式,直到事务提交或者回滚以后才恢复。 提交...

PDO的安全处理与事物处理

一.PDO异常处理 PDO::ATTR_ERRMODE 1) PDO::ATTR_ERRMODE //不报错误(忽略)(0) 2) PDO::ERRMODE_WARNING //以警告的方式报错(1...
  • bboyjoe
  • bboyjoe
  • 2015年10月09日 18:39
  • 412

PDO事物配合表格读取大量插入,亲测可用

在处理大量数据的时候,或者同时对几个表操作,而这几个表的操作要求,要么都成功,要么都失败的时候,就需要用到事物,而PDO中提供的事物,一般可以满足需求。      关于事物的具体讲解,http://b...

PDO中事物详解

PDO中事物与其他编程语言类似,采用开始事物,提交事物,回滚的流程模式,但是在使用mysql作为插入或者修改的数据库时需要注意,需要将MySQL中的表的引擎设置为Innodb模式,MySQL中表有两种...

pdo事物

自己写的PHP pdo处理类

  • 2011年09月14日 13:59
  • 5KB
  • 下载

太极分布式事物处理框架

  • 2017年05月22日 19:09
  • 159B
  • 下载

PHP中PDO的MYSQL事务处理实例

PHP中PDO的MYSQL事务处理实例 事务(transaction)是由查询和/或更新语句的序列组成。 用 begin、start transaction 开始一个事务,rollback...

Jboss事物处理

  • 2016年01月11日 15:45
  • 13KB
  • 下载

java 事物处理的资源

  • 2010年06月21日 16:57
  • 60KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PDO事物处理
举报原因:
原因补充:

(最多只允许输入30个字)