【发布时间】:2023-03-19 22:00:01
【问题描述】:
TL;DR我不是在问如何使错误消失,我不想再次知道我可以使用fetchAll() 和/或打开缓冲查询。
关于这个错误的另一个问题:
SQLSTATE[HY000]:一般错误:2014 无法在其他无缓冲查询处于活动状态时执行查询。
thereare 无数关于此的帖子,它们很棒,但这不是我的兴趣。
我不只是希望错误消失,我想知道是否有办法确定哪些无缓冲查询仍处于活动状态?
由于我只使用 MySQL,而我的应用程序只能使用 MySQL 运行,我当然可以
考虑使用 PDOStatement::fetchAll()。或者,如果您的代码只针对 mysql 运行,您可以通过设置 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性来启用查询缓冲
但这不是重点。
man page for pdo 似乎没有执行此操作的方法,并且inTransaction() 方法不适用,因为我没有使用事务。
如果有帮助,所有查询都是准备好的语句,只需准备好 sql 就可以极大地帮助我确定哪个查询没有被完全提取。
var_dumping PDO 对象会产生一个不太有用的结果:
object(PDO)#31 (0) { }
我的梦想是能够使用这样的东西:
var_dump($pdo->showActiveQueries());
这会返回类似的东西
数组(2){ [0]=> string(19) "SELECT foo FROM bar" [1]=> 字符串(21)“从 2bar 中选择 2foo” }【问题讨论】:
-
你试过转储语句对象吗?
-
我不知道是哪一个有问题。或者这不是你的意思?