首页 文章

在Yii上获取错误,如SQLSTATE [HY000]:常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询

提问于
浏览
0

我收到的确如此错误

SQLSTATE [HY000]:常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询 . 考虑使用PDOStatement :: fetchAll() . 或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲 . >我在我的项目中使用Yii框架 . 操作系统:Debian GNU / Linux 8 \ n \ l Php:PHP 5.6.13-0 deb8u1 Mysql:4.2.12deb2数据库客户端版本:libmysql - 5.5.44

我从数据库获取数据并按照以下代码导出为csv:

ini_set('memory_limit', '-1');
$cmd = Yii::app()->db->createCommand("select su.name as ConsultantName , su.Surname as ConsultantSurname,su.RegistrationDate as RegistrationDate,su.CardNumber as ConsultantCardNumber,su.SequenceNumber as ConsultantSequenceNumber, 
s.Name as StoreName,s.StoreAddress1 as StoreAddress,s.LeegraCode,s.LeegraRegion as Region ,  n.Name as Network, sg.Name as SuperGroup,sg.CardNumber as SuperGroupCardnumber,sg.SequenceNumber as SuperGroupSequenceNumber, s.ID as AccelerateID,
manager.Name as StoreManagerName, manager.Surname as StoreManagerSurname, manager.CardNumber as ManagerCardNumber, manager.SequenceNumber as ManagerSequenceNumber,fun_total_claim_by_sustemuser(su.ID) as Total_number_of_claims_ever,fun_systemuser_register(su.ID) as Registered_AND_Activated_Yes_No
from systemuser su 
inner join store s on s.ID = su.StoreID
inner join network n on n.ID = su.NetworkID
left join (select man.* from systemuser man inner join store store on store.ID = man.StoreID and RoleID = 3 ) manager on manager.StoreID = s.ID
inner join supergroup sg on sg.ID = s.SuperGroupID
where su.RoleID = 1");

Yii::import('ext.ECSVExport');
$csv = new ECSVExport($cmd);
$content = $csv->toCSV();
$filename="StoreByUserByNetworkByManager.csv"  ;
Yii::app()->getRequest()->sendFile($filename, $content, "text/csv", false);
exit();

这个相同的代码正在我的本地系统上运行,但没有在新服务器上工作,因为我已经提供了上述信息 . 有人知道这个错误可能是什么问题吗?

1 回答

  • 0

    尝试在createCmmand之前添加它

    Yii::app()->db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
    

相关问题