我正在使用 Yii 处理一个 mysql 存储过程。sp 有几个参数,其中一个是输出参数。
执行sp后,当我尝试获取输出参数时,我遇到了错误
CDbCommand 未能执行 SQL 语句:SQLSTATE[HY000]:一般错误:2014 在其他无缓冲查询处于活动状态时无法执行查询。考虑使用 PDOStatement::fetchAll()。或者,如果您的代码只针对 mysql 运行,您可以通过设置 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性来启用查询缓冲。执行的 SQL 语句是:选择 @error_info 作为结果;
我的模拟代码是这样的:
$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();
我怎样才能绕过这个问题?谢谢。