Php CDbCommand::fetchColumn()失败:SQLSTATE[HY000]:一般错误:2014无法在其他未缓冲查询处于活动状态时执行查询

Php CDbCommand::fetchColumn()失败:SQLSTATE[HY000]:一般错误:2014无法在其他未缓冲查询处于活动状态时执行查询,php,mysql,pdo,yii,Php,Mysql,Pdo,Yii,我希望能够在OUT参数内从mysql存储过程中获得一些输出,但在这种情况下,存储过程也会通过下面的select语句返回结果集 DELIMITER $$ DROP PROCEDURE IF EXISTS `RD`.`sp`$$ CREATE DEFINER=`root`@`%` PROCEDURE `sp`(in b int, out a int) BEGIN select 664656 into a; select 5; END$$ DELIMITER ; 在控制台中逐一运行下面提到的

我希望能够在OUT参数内从mysql存储过程中获得一些输出,但在这种情况下,存储过程也会通过下面的select语句返回结果集

DELIMITER $$

DROP PROCEDURE IF EXISTS `RD`.`sp`$$

CREATE DEFINER=`root`@`%` PROCEDURE `sp`(in b int, out a int)
BEGIN
select 664656 into a;

select 5;
END$$

DELIMITER ;
在控制台中逐一运行下面提到的命令

call sp(5,@a)
select @a
我们会得到结果的 5 => 5 @a=>664656

但是,当我尝试从php运行相同的代码时,出现以下错误

[error] [system.db.CDbCommand] CDbCommand::fetchColumn() failed: 
SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active.  
Consider using PDOStatement::fetchAll().  
Alternatively, if your code is only ever going to run against mysql,
 you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.. The SQL statement executed was: select @a as result;.
下面请找到我的php代码

$connection = Yii::app ()->db;
    $b=7;
    $command = $connection->createCommand ( "CALL sp(:b,@a)" );
    $command->bindParam ( ":b", $b, PDO::PARAM_INT );
    $command->execute();

    $command->getPdoStatement()->fetchAll();

    $command->getPdoStatement()->closeCursor();

    $valueOut = $connection->createCommand ( "select @a as result;" )->queryScalar ();


    echo $valueOut;
有没有办法解决这个问题

PHP版本5.3.1

Yii版本1.1.9


Mysql版本5.1.41-3ubuntu12.10

最后,我发现了一些问题,这是php版本的问题。 我将这个版本更新到PHP版本5.3.2,现在可以正常工作了。
请考虑到它在相同版本的windows下不工作,只在linux下工作。(至少对我来说)。

有人能帮我解决这个问题吗?我有PHP5.4.7,我在一个简单的->问题上有问题->你是在windows还是linux上?