gpt4 book ai didi

php - CDbCommand::fetchColumn() failed: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active

转载 作者:行者123 更新时间:2023-11-29 03:10:36 25 4
gpt4 key购买 nike

我希望能够在 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 版本有关。 https://bugs.php.net/bug.php?id=39858我将版本更新到 PHP 版本 5.3.2,现在它工作正常。请考虑到它在相同版本的 Windows 下不起作用,只能在 linux 下工作。(至少对我而言)。

关于php - CDbCommand::fetchColumn() failed: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com