【问题标题】:how to resolve General error: 2014 Cannot execute queries while other unbuffered queries are active. using PDO connection如何解决一般错误:2014 在其他无缓冲查询处于活动状态时无法执行查询。使用 PDO 连接
【发布时间】:2013-01-05 16:51:51
【问题描述】:

当我使用相同的连接语句(使用 PDO)执行第二个存储过程时,出现以下错误。

================================================ ==

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

================================================ ========

这是我在drupal中的代码

$conn->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);

$statement = $conn->prepare("CALL Odd_Get_Sport()");
$exec_result = $statement->execute();
while ($row = $statement->fetchObject()) {   
  print_r($row);
}


$statement ->closeCursor();

$statement1 = $conn->prepare("CALL Odd_Get_Sport()");
$exec_result1 = $statement1->execute();
while ($row1 = $statement1->fetchObject()) {   
   print_r($row1);
}

帮我解决这个问题。

【问题讨论】:

  • 有时子查询错误或返回超过 1 行的子查询会触发此错误

标签: mysql pdo


【解决方案1】:

这是 PDO 的一个很差的功能,没有很好的文档记录。当语句执行了存储过程时,closeCursor 方法不起作用。您需要使用 nextRowSet 方法。这是我用的

            while($sth->nextRowSet())
        {
            $sth->fetchAll();
        }
        $sth->closeCursor();

【讨论】:

    【解决方案2】:

    在每次准备之前将其设置为 null

    $statement1=null;
    $statement1 = $conn->prepare("CALL Odd_Get_Sport()");
    $exec_result1 = $statement1->execute();
    while ($row1 = $statement1->fetchObject()) {   
       print_r($row1);
    }
    
    $statement1=null;
    $statement1 = $conn->prepare("CALL Another()");
    $exec_result1 = $statement1->execute();
    while ($row1 = $statement1->fetchObject()) {   
       print_r($row1);
    }
    
    $statement1=null;
    $statement1 = $conn->prepare("SELECT * FROM test");
    $exec_result1 = $statement1->execute();
    while ($row1 = $statement1->fetchObject()) {   
       print_r($row1);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-23
      • 2011-01-05
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 2015-03-28
      相关资源
      最近更新 更多