我正在对多个更新执行 PDO::exec
命令:
$MyPdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
$MyPdo->exec("update t1 set f1=1;update t2 set f1=2");
我在一个事务中做它,我不断收到以下错误:
SQLSTATE [HY000]:常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询 . 考虑使用PDOStatement :: fetchAll() . 或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲 .
这些是唯一的查询
2 回答
您不应将语句作为单个查询执行 . 一次执行一个:
我遇到了同样的问题,并没有找到任何解决方案:
在php 5.3之前你可以通过destroy $ pdo关闭连接,在php 5.3中,你可以使用$ pdo-> query()来执行多查询,注意$ pdo-> exec()完成并不意味着sql server完成了执行:
为了diyism