douzhang3822 2015-05-07 09:48
浏览 46

Mysql无缓冲查询仍然失败

I am getting the following error in my PHP code:

PDOException: 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.

These are the queries I'm running which end up terminating with this error:

$db->exec("CREATE TEMPORARY TABLE {$dp}docs_tally (tally INT(11),date_clicked INT(11),accountID INT (11))");

$tally = $db->prepare(" SET @sum1 = 0;
                        INSERT INTO {$dp}docs_tally
                        SELECT (@sum1 := @sum1 + 1) as tally, date_clicked, accountID
                        FROM (
                            SELECT date_clicked,accountID
                            FROM `repository` drep
                            JOIN `clicks_or_downloads` dclick ON dclick.documentID = drep.ID
                            WHERE accountID = ?
                            ORDER BY dclick.ID ASC
                        ) vtable
                        GROUP BY date_clicked");

foreach ($accs_data as $row){
        $tally->execute(array($row['accountID']));
}

I have tried adding array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true) to the prepare statement as given here (http://php.net/manual/en/ref.pdo-mysql.php). I've also set:

$this->db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);

When I then run getAttribute on this parameter it does return true, so the question is why when this is attribute is turned on do I still get the error telling me to turn it on?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
    • ¥15 微信会员卡接入微信支付商户号收款
    • ¥15 如何获取烟草零售终端数据
    • ¥15 数学建模招标中位数问题
    • ¥15 phython路径名过长报错 不知道什么问题
    • ¥15 深度学习中模型转换该怎么实现
    • ¥15 HLs设计手写数字识别程序编译通不过
    • ¥15 Stata外部命令安装问题求帮助!
    • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
    • ¥15 TYPCE母转母,插入认方向