php 执行事务的时候pdo出现问题

新版本的pdo会有这个问题:

General error: 2014 Cannot execute queries while other unbuffered queries are active.  Consider using PDOStatement::fetchAll().  Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.‘ in。。。

意思是要么使用fetchAll(),要么使用MYSQL_ATTR_USE_BUFFERED_QUERY这个属性,前者不想那样用,因为担心占用内存,后者发现没效果。

 $this->db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);

参考博客:

http://www.flashj.cn/wp/pdo-transaction-err-in-php.html

时间: 2024-11-09 00:42:06

php 执行事务的时候pdo出现问题的相关文章

SqlServer批量刷数据执行事务回滚语句备份

企业进行对数据库执行刷数据工作,一段很长的语句希望同时成功或者失败时用到. 1.建立测试环境 /************************************************************ * Code formatted by SoftTree SQL Assistant ?v6.5.278 * Time: 2016/9/29 21:33:55 ************************************************************/

ADO.NET笔记——执行事务

相关知识: 处于同一事务(Transaction)内的一组操作,要么都成功执行,最后完全提交:但如果只要有任何一个操作失败或者出问题,所有值钱执行的操作也都取消并恢复到初始状态(即回滚) SqlTransacttion代表从ADO.NET中发出的事务 代码示例: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading

PDO类基本应用二

思考:在MySql中,有一种事务功能,能够帮助实现哪些需要多个步骤操作,然后一次性完成的,那么PDO中是如何实现的呢? 引入:其实,事务操作本质上是一种SQL操作,也就是说利用前面所说的写操作(事务都是写操作),就可以实现,而在PDO中,当然也提供 了一定的封装来实现这个功能,从而避免了一些简单的固定SQL执行的操作 PDO事务功能[了解] 定义:PDO事务功能,并非PDO额外多出了一项功能,而是将原来MySql所支持的事务操作进行了一定的封装实现.注意:事务执行是否成功是由MySql对应的存储

PHP PDO 事务与自动提交

现在通过 PDO 连接上了,在开始进行查询前,必须先理解 PDO 是如何管理事务的. 事务支持四大特性(ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 通俗地讲,在一个事务中执行的任何操作,即使是分阶段执行的,也能保证安全地应用于数据库,并在提交时不会受到来自其他连接的干扰. 事务操作也可以根据请求自动撤销(假设还没有提交),这使得在脚本中处理错误更加容易. 事务通常是通过把一批更改"积蓄"起来

SQL Server事务执行一半出错是否自动回滚整个事务 【转】

http://www.2cto.com/database/201308/234728.html SQL Server事务执行一半出错是否自动回滚整个事务 大家都知道SQL Server事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分.如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除. 所以是不是说事务出错一定会回滚整个事物呢? 先看几个个例子: --createtable create table testrollback(idi

ACID:数据库事务正确执行的四个基本要素

ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).一个支持事务(Transaction)的数据库,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求. 原子性整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节.事务在执行过程中发生错误,会被回滚(R

C#实现执行数据库事务案例

我是实际项目来拆出来做的案例,场景是比如我们在做电商网站时,在创建订单时的一系列操作,通常在创建订单时我们需要数据表的操作有:订单的表头(主表).订单的详细.清空购物车.甚至是修改优惠劵的状态(在使用了优惠劵的时候),下面直接把执行事务的主方法直接贴出来: public static bool CreateUserOrder(UserOrder model, string Ids) { List<string> SQLStringList = new List<string>();

ACID(数据库事务正确执行的四个基本要素的缩写)

ACID,指数据库事务正确执行的四个基本要素的缩写. 包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability). 一个支持事务(Transaction)的,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求. 原子性 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节.事务在执行过程中发生错误,会被回滚(R

防止线程并发导致事务的重复执行

1.可以借助第三方,如redis进行处理,在事务执行之前通过对Redis hash 添加一个记录标记当前有事务正在执行,在事务结束之后,删除对Hash记录,防止缓存数据过多.为了防止异常导致的事务没有执行成功而下一次不能执行事务的可能.需要针对事务块代码进行捕获异常进行处理,总之,finally 需要清除掉当前正在执行的标记. 2.可以通过Mysql建立数据字典表,设置好主键,通过本地事务的方式,只有成功往数据字典插入记录才执行事务,否则,回滚事务.这里需要注意的是,插入重复键值时,需要通过再I