在 zend Framework 2 中调用存储过程时,它抛出错误消息,我该如何解决这个问题,
$dbAdapter = $e->getApplication()->getServiceManager()->get('Zend\Db\Adapter\Adapter');
$results = $dbAdapter->query("CALL PROCEDURE_NAME('PARAM1')");
$DataSource = $results->execute();
$Statement = $DataSource->getResource();
$Result = $Statement->fetchAll(\PDO::FETCH_OBJ);
上面的代码用于获取存储过程信息
低于错误
语句无法执行(HY000 - 2014 - 当其他无缓冲查询处于事件状态时无法执行查询。考虑使用 PDOStatement::fetchAll()。或者,如果您的代码仅针对 mysql 运行,您可以启用查询通过设置 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性进行缓冲。)
最佳答案
解决了我的问题,我只是在获取结果后放置 closeCursor
$dbAdapter = $e->getApplication()->getServiceManager()->get('Zend\Db\Adapter\Adapter');
$results = $dbAdapter->query("CALL PROCEDURE_NAME('PARAM1')");
$DataSource = $results->execute();
$Statement = $DataSource->getResource();
$Result = $Statement->fetch(\PDO::FETCH_OBJ);
$Statement->closeCursor();
感谢 Ukuser32 支持我寻找解决方案
关于php - 在 zf2 中调用存储过程时发生 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35770753/