问题描述
我知道这必须是一个简单的修复程序,而且我部分理解为什么我会收到此错误,但不知道如何解决它.我看了看文档,但除了使用缓冲查询选项外,找不到其他解决方案.我也尝试过,但是不起作用.
I know this has to be a simple fix and I partially understand why I am getting this error but don't know how to fix it. I've looked over the docs but can't find a solution other than using buffered queries option. I have tried that as well but it doesn't work.
错误是:在其他无缓冲查询处于活动状态时,PDO无法执行查询
The error is: PDO Cannot execute queries while other unbuffered queries are active
错误来自我构建$ result数组的行.
The error is coming from the line where I am building the $result array.
foreach($phones as $phone)
{
$stmt = db::getInstance()->prepare("CALL phones(:phone)");
$stmt->bindParam(':phone', $phone, PDO::PARAM_INT, 10);
$stmt->execute();
$result[] = db::getInstance()->query("SELECT @phone;")->fetchAll(PDO::FETCH_ASSOC);
}
推荐答案
您需要使用PDOStatement :: closeCursor()方法释放连接
You need to free up your connection using the PDOStatement::closeCursor() method
http://www.php.net/manual/en/pdostatement. closecursor.php
我相信
foreach($phones as $phone)
{
$stmt = db::getInstance()->prepare("CALL phones(:phone)");
$stmt->bindParam(':phone', $phone, PDO::PARAM_INT, 10);
$stmt->execute();
$stmt->closeCursor()
$result[] = db::getInstance()->query("SELECT @phone;")->fetchAll(PDO::FETCH_ASSOC);
}
应该为您做
这篇关于其他未缓冲的查询处于活动状态时,PDO无法执行查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!