我刚回答this question,它使用以下代码:
...
$stmt->bindColumn("id", $alarmId);
if ($stmt->fetch(PDO::FETCH_ASSOC))
...
在试验之后,我了解到虽然在PHP文档的示例中使用了PDO::FETCH_BOUND
,但bindColumn
显然无论使用的获取样式如何都有效,因此看起来像{{1}这里没有意义,因为它没有分配给变量。
但这让我想知道,在没有实际将结果分配给任何内容的情况下,使用PDO::FETCH_ASSOC
获取的效果是什么? (我知道PDO::FETCH_ASSOC
的使用意味着在这个例子中,结果IS的一部分实际上被分配给了bindColumn
,但我对短暂的关联数组会发生什么感兴趣。)它是否暂时存在在内存中,即使它没有分配给变量,或者如果没有赋值,PHP会忽略它吗?有没有办法测试这个?
答案 0 :(得分:0)
PDO::fetch
返回一个指向结果集中下一个项目的光标,其中包含一种generator
,允许您一次迭代结果集一个项目。
PDO::fetchAll
根据您选择的提取模式返回数字\关联数组中的数据集,这会消耗存储整个结果集所需的内存。