【发布时间】:2015-08-16 11:12:46
【问题描述】:
使用 PHP PDO 调用第二个存储过程时出现以下错误:
SQLSTATE[HY000]:一般错误:2014 在其他无缓冲查询处于活动状态时无法执行查询。考虑使用 PDOStatement::fetchAll()。或者,如果您的代码只针对 mysql 运行,您可以通过设置 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性来启用查询缓冲。
当您在请求更多数据之前没有使用fetchAll() 从 MySQL 取回所有数据时,通常会发生此错误。但是在这种情况下,我在所有存储过程调用上都使用 fetchAll。
有两种解决方法。在每次存储过程调用后使用 $stmt->closeCursor() 或使用 SELECT 查询替换存储过程。
存储过程是否存在使数据“无法获取”的问题?
【问题讨论】:
-
请发布存储过程定义。您是否在其中一个结果集中选择 多个 结果集,但仅从一个结果集中选择
fetchAll(),而不使用nextRowset()?
标签: php mysql stored-procedures pdo