首页 文章

在zf2中调用存储过程时发生PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY错误

提问于
浏览
0

在zend框架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属性 . )

1 回答

  • 0

    解决了我的问题,我只是在获取结果后放入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支持我找到解决方案

相关问题