Bug #70066 [Com]: Unexpected "Cannot execute queries while other unbuffered queries"
| From: | kbenton at activecampaign dot com | Date: | Wed, 06 Jun 2018 17:30:46 +0000 |
| Subject: | Bug #70066 [Com]: Unexpected "Cannot execute queries while other unbuffered queries" | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-215523@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=70066&edit=1
ID: 70066
Comment by: kbenton at activecampaign dot com
Reported by: david at grudl dot com
Summary: Unexpected "Cannot execute queries while other
unbuffered queries"
Status: Open
Type: Bug
Package: PDO MySQL
PHP Version: 5.6.11
Block user comment: N
Private report: N
New Comment:
kbenton@localhost î° ~ î° php --version
PHP 7.2.6 (cli) (built: May 22 2018 16:22:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
kbenton@localhost î° ~ î° php testme.php
Exception caught: 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.
Here!
kbenton@localhost î° ~ î° cat testme.php
<?php
try {
$pdo = new PDO('mysql:host=127.0.0.1', 'aql_app', '@ql_@pp');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
$pdo->query('USE aql_db');
} catch ( Exception $e ) {
echo "Exception caught: {$e->getMessage()}\n";
}
echo "Here!\n";
kbenton@localhost î° ~ î°
Previous Comments:
------------------------------------------------------------------------
[2015-07-13 18:32:11] david at grudl dot com
Description:
------------
This code throws "SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other
unbuffered queries are active" on line 4.
The solution is to use exec() instead of query(), but I think that it is bug since there is no other
active query.
Test script:
---------------
$pdo = new PDO('mysql:host=127.0.0.1', '...', '...');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
$pdo->query('USE nette_test');
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=70066&edit=1