我是靠谱客的博主 受伤大门,最近开发中收集的这篇文章主要介绍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即可.

   

最后

以上就是受伤大门为你收集整理的PHP PDO Cannot execute queries while other unbuffered queries are active 错误的一种分析和处理的全部内容,希望文章能够帮你解决PHP PDO Cannot execute queries while other unbuffered queries are active 错误的一种分析和处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部