OXID 6 - PDOStatement::fetchAll() Fehler

oxid6
#1

Hallo zusammen,
ich habe einfaches SQL Query für fetchAll() method, leider taucht diese Fehlermeldung auf.
Haben Sie eine Idee für den Lösung?

Fehlermeldung:

message 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.

SQL Query:

$db = \OxidEsales\Eshop\Core\DatabaseProvider::getDb(\OxidEsales\Eshop\Core\DatabaseProvider::FETCH_MODE_ASSOC);
$resultSet = $db->select("SELECT oxid FROM oxtickets WHERE oxticketgroup= " . $db->quote($groupId));
//Fetch all at once (beware of big arrays)
$allResults = $resultSet->fetchAll();
     
foreach ($allResults as $row) {

}
0 Likes

#2

Die Meldung taucht nicht unbedingt da auf wo der Fehler liegt. Bei mir lag es daran dass an einer Stelle “execute” für ein select verwendet wurde, dafür muss in Oxid 6 “select” verwendet werden.

0 Likes

#3

Evt. hilft es, diesen Teil durch `\OxidEsales\Eshop\Core\DatabaseProvider::getDb()->quote($groupId) zu ersetzen.

0 Likes

#4

vielen Dank, suche es weiter, biss jetzt nicht gefunden.

aber im Fehlermeldung steht schon von der Zeile.

[16 Apr 10:04:26.220854 2019] [exception] [type OxidEsales\Eshop\Core\Exception\DatabaseErrorException] [code 2014] [file /www/htdocs/w018b9bd/mame/vendor/oxid-esales/oxideshop-ce/source/Core/Database/Adapter/Doctrine/Database.php] [line 938] [message 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.]
[16 Apr 10:04:26.220854 2019] [exception] [stacktrace] #0 /www/htdocs/test/test/vendor/oxid-esales/oxideshop-ce/source/Core/Database/Adapter/Doctrine/Database.php(621): OxidEsales\EshopCommunity\Core\Database\Adapter\Doctrine\Database->convertException(Object(Doctrine\DBAL\Exception\DriverException))

[16 Apr 10:04:26.220854 2019] [exception] [stacktrace] #1 /www/htdocs/test/test/source/modules/test/test/core/oxtestphp(232): OxidEsales\EshopCommunity\Core\Database\Adapter\Doctrine\Database->select('SELECT oxid FRO...')
0 Likes

#5

Wenn irgendwo “execute” verwendet wird dann löst das erstmal keinen Fehler aus. Der Fehler “unbuffered queries” kommt dann irgendwann später bei einem eigentlich korrekten Statement.

0 Likes