gpt4 book ai didi

php - yii框架中如何获取mysql存储过程输出参数

转载 作者:可可西里 更新时间:2023-10-31 23:32:08 25 4
gpt4 key购买 nike

我正在使用 Yii 来处理一个 mysql 存储过程。 sp有几个参数,其中一个是输出参数。

执行sp后,获取输出参数时出错

CDbCommand 无法执行 SQL 语句:SQLSTATE[HY000]:一般错误:2014 其他无缓冲查询处于事件状态时无法执行查询。考虑使用 PDOStatement::fetchAll()。或者,如果您的代码只针对 mysql 运行,您可以通过设置 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性来启用查询缓冲。执行的 SQL 语句是:select @error_info as result;

我的模拟代码是这样的:

$sql = 'CALL p_bid(:username, @param)';
$command = Yii::app()->db->createCommand($sql);
$command->bindParam(":username", $username, PDO::PARAM_STR);

$command->execute();

// the following line raise the error
$errorInfo = Yii::app()->db->createCommand("select @error_info as result;")->queryScalar();

我怎样才能绕过这个问题?谢谢。

最佳答案

试试这个,它对我有用

$command = $connection->createCommand("CALL r emove_places(:user_id,:placeID,:place_type,@out)"); 
$command->bindParam(":user_id",$user_id,PDO::PARAM_INT);
$command->bindParam(":placeID",$placeID,PDO::PARAM_INT);
$command->bindParam(":place_type",$place_type,PDO::PARAM_INT);
$command->execute();
$valueOut = $connection->createCommand("select @out as result;")->queryScalar();

关于php - yii框架中如何获取mysql存储过程输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16494763/

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