您的位置:首页 > 产品设计 > UI/UE

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

2017-10-26 10:00 621 查看
不过原因和分析过程了,直接说结论:

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即可.

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: