首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在yii框架中获取mysql存储过程输出参数

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

Stack Overflow用户
提问于 2013-05-11 15:14:28
回答 1查看 4.9K关注 0票数 4

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

在执行sp之后,当我尝试获取输出参数时,遇到错误

CDbCommand无法执行SQL语句: SQLSTATEHY000:常规错误: 2014当其他未缓冲的查询处于活动状态时无法执行查询。考虑使用PDOStatement::fetchAll()。或者,如果您的代码仅针对mysql运行,则可以通过设置PDO::MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲。执行的SQL语句是: select @error_info作为结果;

我的模拟代码是这样的:

代码语言:javascript
复制
$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();  

我该如何绕过这个问题呢?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-01-01 04:13:47

试试这个,它对我很有效

代码语言:javascript
复制
$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(); 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16494763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档