zoukankan      html  css  js  c++  java
  • PHP 中mysql如何实现事务提交?

    事务就是指对数据库的多次修改,要么全部成功,要么全部失败,不能出现部分修改成功,部分修改失败的情况。

    PHP下操作mysql数据库要实现事务提交,需注意以下方面:

    1, 数据库表存储引擎类型设置为innoDB。默认的mysql表采用MYISAM引擎,是不支持事务的,因此要采用以下语句变更:

    mysql> alter table ‘table_name’ engine=innodb;

    2,PDO对象设置要设置errmode为Exception,否则第16行SQL执行出错,语句也不会跳到catch段去rollback, 而是继续向下执行直到commit。

     1 try {
     2         $pdo = new PDO($dsn, $user, $pass);     //初始化一个PDO对象,就是创建了数据库连接对象$pdo
     3         $pdo->setAttribute (PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION );
     4         $pdo->beginTransaction();                //开启事务
     5         $query="正确的语句";
     6         $result=$pdo->prepare($query);
     7                 
     8         if($result->execute()){
     9             echo "数据添加成功!";
    10         }else{
    11             echo "数据添加失败!";
    12         }
    13         
    14         
    15         $query="错误的语句";
    16         $result=$pdo->prepare($query);
    17                 
    18         if($result->execute()){
    19             echo "数据添加成功!";
    20         }else{
    21             echo "数据添加失败!";
    22         }        
    23         
    24         
    25         $pdo->commit();                        //执行事务的提交操作
    26     } catch (PDOException $e) {
    27           die ("Error!: " . $e->getMessage() . "<br/>");
    28         $pdo->rollBack();                    //执行事务的回滚
    29     }
  • 相关阅读:
    【NOIP2006T】作业调度方案
    「NOIP2012P」寻宝
    51Nod1084 矩阵取数问题 V2
    51Nod1294 修改数组
    51nod1122 机器人走方格V4
    多项式相关模板#1
    51Nod1514 美妙的序列
    Jzoj5674 香槟
    Jzoj5669 排列
    Jzoj5665 奥立卡的诗
  • 原文地址:https://www.cnblogs.com/jackkwok/p/4882655.html
Copyright © 2011-2022 走看看