PHP PDO Cannot execute queries while other unbuffered queries are active 错误的一种分析和处理

不过原因和分析过程了,直接说结论:



PDO 在同一次连接中, 如果调用 了 以下 MYSQL语句, 则:本语句成功,下一条语句必死,报错为:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: 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 


我测试产生此问题的语句包括:

    1. REPAIR TABLE ***

    2.OPTIMIZE TABLE ***

    3.CALL ***


前两个不太常用,但第三个很常用,调用 存储过程啊 (当然了,存储过程本身就不太常用 )


解决方案也很简单:

     调用以上功能 后, 重新生成PDO连接对象. 


后继事件:

    以上结论是我百度之后 没找到办法后,自行想的解决方案.   但~~~~, 同事翻墙出去Google了一下, 直接 就有简单的解决方案

    别用pdo->exec,直接用pdo_query即可.

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值