手机版

PDO 事务处理 - MySQL中文参考手册

2019-09-11 阅读 :

PDO 事务处理

PDO 事务对象方法

方法描述
beginTransaction()启动一个事务
commit()提交一个事务
rollBack()回滚一个事务
inTransaction()检测是否在一个事务内

注意:当需要使用事务的时候,数据库表引擎不能是 MyISAM ,必须要是 InnoDB。

<?phptry {    $host = 'mysql:host=localhost;dbname=test';    $pdo = new PDO($host, 'root', 'aaaaaa', [PDO::ATTR_AUTOCOMMIT => 0]);    // 建表 SQL    $sql = <<<EOF        CREATE TABLE IF NOT EXISTS user_account(            id INT UNSIGNED NOT NULL AUTO_INCREMENT,            username VARCHAR(20) NOT NULL UNIQUE,            money DECIMAL(8,2) NOT NULL,             PRIMARY KEY (id)        )ENGINE=InnoDB DEFAULT CHARSET UTF8 COMMENT "用户账户表";EOF;    $pdo->exec($sql); // 使用 PDO 对象的 exec()方法执行建表语句    /*$sql = 'INSERT INTO user_account (username, money) VALUES (:username, :money),(:username2, :money2)';    $statement = $pdo->prepare($sql); // 预处理 SQL    $statement->bindParam(':username', $username, PDO::PARAM_STR);    $statement->bindParam(':money', $money);    $statement->bindParam(':username2', $username2, PDO::PARAM_STR);    $statement->bindParam(':money2', $money2);    $username = 'luo';    $money = 3000.00;    $username2 = 'li';    $money2 = 3000.00;    $statement->execute(); // 执行预处理*/    // 开启事务    $pdo->beginTransaction();    $res = $pdo->exec('UPDATE user_account SET money = money - 2000 WHERE username = "li"');    if ($res == 0) {        throw new PDOException('li 转账失败');    }    $res2 = $pdo->exec('UPDATE user_account SET money = money + 2000 WHERE username = "luo"');    if ($res2 == 0) {        throw new PDOException('luo 接受转账失败');    }    $pdo->commit();} catch (PDOException $e) {    echo $e->getMessage();}


服务器软件 网络工具 网站工具 服务器教程 服务器知识 服务器技术 服务器之家 vps教程 vps是什么

本文标题:PDO 事务处理 - MySQL中文参考手册 - 服务器教程_服务器技术_服务器知识_vps教程
本文地址:http://www.helloaliyun.com/tutorial/527.html

相关文章

  • Linux Shell 教程_Linux Shell 中文详解参考手册
    Linux Shell 教程_Linux Shell 中文详解参考手册

    Shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。Shell脚本就是由Shell命令组成的文件,这些命令都是可执行程序的名字,脚本不用编译即可运行,它通过解释器解释运行。...

    2019-09-11 服务器教程
  • Shell 教程:Shell是什么?一分钟理解Shell的概念!
    Shell 教程:Shell是什么?一分钟理解Shell的概念!

    现在我们使用的操作系统(Windows、Mac OS、Android、iOS 等)都是带图形界面的,简单直观,容易上手,对专业用户(程序员、网管等)和普通用户(家庭主妇、老年人等)都非常适用;计算机的普及离不开图形界面。 然而在计算机的早期并没...

    2019-09-11 服务器教程
  • Shell 教程:Shell 文件包含

    和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。Shell 文件包含的语法格式如下:. filename # 注意点号(.)和文件名中间有一空格或source filename实例创建两个 sh...

    2019-09-11 服务器教程
  • Shell 教程:Shell 输入/输出重定向

    大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是...

    2019-09-11 服务器教程
  • Shell 教程:Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[ function ] funname [()]{ action; [return int;]}说明: 1、可以带function fun() 定义,也可以直接fun() 定义,不带任...

    2019-09-11 服务器教程
  • Shell 教程:Shell的流程控制

    和Java、PHP等语言不一样,Shell的流程控制不可为空,如(以下为PHP流程控制写法):<?phpif (isset($_GET["q"])) { search(q);}else { // 不做任何事情}在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个...

    2019-09-11 服务器教程
  • Shell 教程:Shell test 命令

    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt 大于则为真 -ge 大于等...

    2019-09-11 服务器教程
  • Shell 教程:Shell printf 命令

    printf 命令模仿 C 程序库(library)里的 printf() 程序。printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制...

    2019-09-11 服务器教程
  • Shell 教程:Shell echo命令

    Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:echo string您可以使用echo实现更复杂的输出格式控制。1.显示普通字符串:echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例...

    2019-09-11 服务器教程
  • Shell 教程:Shell 基本运算符

    Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表...

    2019-09-11 服务器教程
你可能感兴趣