码迷,mamicode.com
首页 > 数据库 > 详细

PHP 中mysql如何实现事务提交?

时间:2015-10-15 18:00:33      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

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

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     }

 

PHP 中mysql如何实现事务提交?

标签:

原文地址:http://www.cnblogs.com/jackkwok/p/4882655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!