我有一些代码,其中变量$ query应该包含不同的PDOStatement对象,一个被另一个替换:
$query = $conn->prepare("select * from ... ");
$query->execute();
while ($tmp=$query->fetch(PDO::FETCH_ASSOC)) {
...;
}
//unset($query);
$query = $conn->query("select * from ... ");
while ($tmp=$query->fetch(PDO::FETCH_ASSOC)) {
....;
}
使用这样的代码,我从最后一次获取的行上的PDO得到“SQLSTATE [HY000]:一般错误:2050”。但如果我用“未设置”取消注释 - 它会开始正常工作。
知道它可能是什么?
PS不使用未设置,它也适用于PDO :: ATTR_EMULATE_PREPARES = true
UPD 以下是MySQL站点的错误代码描述:
错误:2050(CR_FETCH_CANCELED) 消息:行检索已被mysql_stmt_close()调用
取消答案 0 :(得分:0)
在某些php版本中出现错误2050,因为您必须清空包含查询结果的对象的var 见 https://stackoverflow.com/a/36631355/2613863
Matt Cavanagh commet 中的