调用多个存储过程时,MySQL PDO一般错误2014

时间:2015-06-02 15:07:03

标签: php mysql stored-procedures pdo

使用PHP PDO调用第二个存储过程时出现以下错误:

  

SQLSTATE [HY000]:常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询。考虑使用PDOStatement :: fetchAll()。或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲。

通常,如果您在请求更多数据之前未使用fetchAll()从MySQL获取所有数据,则会发生此错误。但是在这种情况下,我在所有存储过程调用上使用fetchAll。

可能有两种解决方法。在每次存储过程调用之后使用$stmt->closeCursor()或者用SELECT查询替换存储过程。

存储过程是否存在使数据无法解决的问题?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我使用了PDO fetchAll,nextRowset();然后closeCursor();这解决了我的问题。