pdo 创建事物处理

来源:互联网 发布:淘宝论坛怎么引流 编辑:程序博客网 时间:2024/05/22 00:39

1,在数据库创建一张引擎为 inno DB 的表

2,特性,事务内的sql语句只有全部执行成功,才能统一操作数据库,否则全部失败

//DSN (Data Source Name) 数据源名称  (主机,库, 具体的什么数据库类型)

$dsn = "oci:dbname=localhost/sql";  //链接orecl 数据库

$dsn = "mysql:host=localhost;dbname=sql"; //链接mysql

//创建数据库连接

try{

        //参数 dsn  账号   密码    配置属性

        $pdo = new PDO($dsn,'root','root',array(PDO::ATTR_PERSISTENT=>true));  //定义为持久连接

        $pdo -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);  //定义数据库连接为异常模式

        $pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,0);  //关闭自动提交

}catch(PDOException $e){

        exit('数据库连接异常:'.$e->getMessage());  //获取数据库对象创建失败的原因

}

//操作数据库

try{

        $pdo -> beginTransaction();  //开启一个事物处理

        $pdo -> exec("delete from user");  //处理没有结果集的语句,可以获取影响行数

        print_r($pdo -> query("select aa from user"));

        $pdo -> commit();  //提交以上操作(失败一条则全部无效)

}catch(PDOException $e){

        echo('错误原因'.$e->getMessage());  //获取操作数据库时出现的错误   

        $pdo -> rollBack();  //撤销所有操作

}

0 0