Php – I get 2014 Cannot execute queries while other unbuffered queries are active when doing exec with PDO

pdoPHPtransactionsunbuffered-queries

I am doing a PDO::exec command on multiple updates:

$MyPdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
$MyPdo->exec("update t1 set f1=1;update t2 set f1=2");

I am doing it inside a transaction, and I keep getting the following error:

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.

those are the only query/ies

Best Answer

You shouldn't execute the statements as a single query. Execute them one at a time:

$MyPdo->exec("update t1 set f1=1");
$MyPdo->exec("update t2 set f1=2");
Related Topic