我知道这必须是一个简单的修复,我部分理解为什么我收到此错误但不知道如何解决它.我查看了文档,但除了使用缓冲查询选项之外无法找到解决方案.我也试过了,但它不起作用.
错误是:PDO在其他未缓冲的查询处于活动状态时无法执行查询
错误来自我构建$ result数组的行.
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);
}
Run Code Online (Sandbox Code Playgroud)
Add*_*dsy 35
您需要使用PDOStatement :: closeCursor()方法释放连接
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);
}
Run Code Online (Sandbox Code Playgroud)
应该为你做
由于我的PDO连接子句中的错误,我遇到了这个问题.我试图在连接时改变时区:
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8; SET time_zone = '$timezone';"
Run Code Online (Sandbox Code Playgroud)
我改成了:
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8, time_zone = '$timezone';"
Run Code Online (Sandbox Code Playgroud)
它工作得很好.