• PDO中的事务处理具体介绍


    在PDO 中同样可以实现事务处理的功能,其应用的方法如下:

    (1) 开启事务——beginTransaction()方法。

    beginTransaction()方法将关闭自动提交(autocommit)模式,直到事务提交或者回滚以后才恢复。大理石平台价格表

    (2)提交事务——commit()方法

    commit()方法完成事务的提交操作,成功返回true,否则返回false。

    (3)事务回滚——rollBack()方法

    rollBack()方法执行事务的回滚操作。

    通过 prepare()和 execute()方法向数据库中添加数据,并且通过事务处理机制确保数据能够正确的添加到数据库中,具体步骤如下:

    创建一个php文件,首先定义数据库连接参数,创建 try{...}catch{...}语句,在try{}语句中实例化 PDO构造函数,完成与数据库的连接,并且通过 beginTransaction()方法开启事务,然后定义INSERT 添加语句,通过$_POST[]方法获取表单中提交的数据,通过prepare()和 execute()方法向数据库中添加数据,并且通过commit(0方法完成事务的提交操作,最后 在catch{}语句中返回错误信息,并且通过 rollBack()方法执行事务的回滚操作,具体代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    <form action="3.php" name="form1" method="post">

        用户名:<input type="text" name="username">

        密码:  <input type="password" name="password">

        <input type="submit" name="Submit" value="提交">

    </form>

    <?php

    header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式

    $name =$_POST['username'];

    $password =$_POST['password'];

    if($_POST['username']!=""&&$_POST['password']!=""){

        $dbms = "mysql";                                  // 数据库的类型

        $dbName ="php_cn";                                //使用的数据库名称

        $user = "root";                                   //使用的数据库用户名

        $pwd = "root";                                    //使用的数据库密码

        $host = "localhost";                              //使用的主机名称

        $dsn  = "$dbms:host=$host;dbname=$dbName";

    try{

        $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo

        $pdo -> beginTransaction();   //开始事务

        $query="insert into `user`(username,password) VALUES ('$name','$password')";//需要执行的sql语句

        $res=$pdo->prepare($query);//准备查询语句

        $res->execute();            //执行查询语句,并返回结果集

        if($res->errorCode()){

            echo "数据添加成功";

        }else{

            echo "数据添加失败";

        }

        $pdo->commit();            //执行事务的提交操作

    }catch (PDOException $e){

        die("Error!:".$e->getMessage().'<br>');

     $pdo -> rollBack();             //执行事务的回滚

    }

    }

    ?>

  • 相关阅读:
    因特网中和多媒体有关的协议
    进程与线程
    线程模型
    SMP PVP Cluster
    读写者
    回调函数
    环境变量
    堆与栈的区别
    操作系统中的同步、异步、阻塞和非阻塞
    Razor潜入2令人疑惑的LocateOwner方法
  • 原文地址:https://www.cnblogs.com/furuihua/p/12187143.html
Copyright © 2020-2023  润新知