PDO事务处理
2016-05-31 17:35
288 查看
刚接触php PDO事务处理,遇到几个坑,分享下。
刚开始用源码发现事务处理没效果,原因是 MySQL数据库默认的存储引擎类型是MyISAM,这种存储引擎类型不支持事务处理。在MySQL中,只有InnoDB存储引擎类型的数据表才能支持事务处理.
再是mysql 要设置 $dbh -> setAttribute(PDO::ATTR_AUTOCOMMIT,0);关闭自动提交,而 mssql则不用 否则会报错: The auto-commit mode cannot be changed for this driver
mssql 也不要设置 array(PDO::ATTR_PERSISTENT => true) 否则apache不断重启, 不知道iis是否如此。
mysql 如果表名是保留关键字 用`` 引起来 ,而mssql 使用 []
预处理配合 execute() 而pdo直接是exec($sql)
另外事务处理里面 支持预处理,已测.
刚开始用源码发现事务处理没效果,原因是 MySQL数据库默认的存储引擎类型是MyISAM,这种存储引擎类型不支持事务处理。在MySQL中,只有InnoDB存储引擎类型的数据表才能支持事务处理.
ALTER TABLE `tb_chengji` ENGINE = InnoDB; 或者用工具修改表引擎
再是mysql 要设置 $dbh -> setAttribute(PDO::ATTR_AUTOCOMMIT,0);关闭自动提交,而 mssql则不用 否则会报错: The auto-commit mode cannot be changed for this driver
mssql 也不要设置 array(PDO::ATTR_PERSISTENT => true) 否则apache不断重启, 不知道iis是否如此。
mysql 如果表名是保留关键字 用`` 引起来 ,而mssql 使用 []
预处理配合 execute() 而pdo直接是exec($sql)
另外事务处理里面 支持预处理,已测.
相关文章推荐
- Kafka安装部署
- Android ORM 框架之 greenDAO 使用心得
- MVC
- 矩阵分析与应用
- (面试)架构相关(不断丰富中… )
- 工作量证明算法
- 在软件开发流程中构筑卓越质量--软件测试管理(深圳,2016.6.24~25)
- Android Dev Intro - Opengl ES and EGL
- iOS OC中获取100以内的所有合数,获取某个合数的所有因数.
- 高速C/C++编译工具ccache
- poj 2187 Beauty Contest(凸包)
- terminator 安装与配置
- 人脸识别之人脸检测(九)--检测器源码分析
- 多线程编程之PV操作示例代码
- java 实现 分组 函数
- 深入解读C++中的右值引用
- PHP 之 表单提交去除斜杠
- 装饰器
- table的一些属性
- 如何设置jquery的ajax方法为同步