假设我正在使用一个简单的 SELECT 语句查询我的数据库。
$sql='SELECT * FROM products';
$s=$db->prepare($sql);
$s->execute();
foreach($s as $v){
echo $v['productName'];
}
$s->closeCursor();
但是我看到了下面的代码,使用 fetchAll() 来做同样的事情:
$sql='SELECT * FROM products';
$s=$db->prepare($sql);
$s->execute();
$products=$s->fetchAll();
$s->closeCursor();
foreach($products as $v){
echo $products['productName'];
}
首先,我知道 fetchAll() 不应该用于大型结果集。但是,问题是:如果我们可以直接遍历 prepare() 方法返回的 PDOStatement 对象,为什么我们要让 fetchAll()(和 fetch())可用?
似乎唯一的好处是更早地释放连接!