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?