PHP 中mysql如何实现事务提交?
2015-10-15 15:55
706 查看
事务就是指对数据库的多次修改,要么全部成功,要么全部失败,不能出现部分修改成功,部分修改失败的情况。
PHP下操作mysql数据库要实现事务提交,需注意以下方面:
1, 数据库表存储引擎类型设置为innoDB。默认的mysql表采用MYISAM引擎,是不支持事务的,因此要采用以下语句变更:
mysql> alter table ‘table_name’ engine=innodb;
2,PDO对象设置要设置errmode为Exception,否则第16行SQL执行出错,语句也不会跳到catch段去rollback, 而是继续向下执行直到commit。
PHP下操作mysql数据库要实现事务提交,需注意以下方面:
1, 数据库表存储引擎类型设置为innoDB。默认的mysql表采用MYISAM引擎,是不支持事务的,因此要采用以下语句变更:
mysql> alter table ‘table_name’ engine=innodb;
2,PDO对象设置要设置errmode为Exception,否则第16行SQL执行出错,语句也不会跳到catch段去rollback, 而是继续向下执行直到commit。
try { $pdo = new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$pdo $pdo->setAttribute (PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION ); $pdo->beginTransaction(); //开启事务 $query="正确的语句"; $result=$pdo->prepare($query); if($result->execute()){ echo "数据添加成功!"; }else{ echo "数据添加失败!"; } $query="错误的语句"; $result=$pdo->prepare($query); if($result->execute()){ echo "数据添加成功!"; }else{ echo "数据添加失败!"; } $pdo->commit(); //执行事务的提交操作 } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); $pdo->rollBack(); //执行事务的回滚 }
相关文章推荐
- php函数ob_start()、ob_end_clean()、ob_get_contents()
- IIS ftp:home directory inaccessible错误问题的一个解除方法
- 利用TerraGate Service传输Skyline MTP案例
- twisted+sftp
- yii 权限和restful服务(一)增加自定义restful服务
- php日志分割
- php示例详解Constructor Prototype Pattern 原型模式
- php gd库没有安装问题确认
- RBAC php
- PHP中去除换行解决办法小结
- ContentProvider
- php;获得本地在局域网内的ip
- ThinkPHP3.2 使用PHPMailer 发送邮件
- 快速升级php5.6
- PHP计算一年有多少周,每周开始日期和结束日期
- PHP计算两个时间段是否有交集(边界重叠不算)
- phpMyAdmin安装教程
- php调试局部错误强制输出 display_errors
- getAttribute与getParameter()
- php匹配图片、视频文件、音乐文件的正则表达式