首页 文章

PDO - >为什么要使用fetchAll?

提问于
浏览
0

假设我使用简单的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()不应该用于大型结果集 . 但问题是: If we can directly transverse the PDOStatement object returned by the prepare() method why do we they make fetchAll() (and fetch())available?

似乎唯一的优势就是可以更早地免费连接!

1 回答

  • 3

    答案很简单:
    因为你必须 separate business logic from presentations logic.
    首先意味着你必须获得所有必需的数据,然后才开始输出 .
    fetchAll在这件事上变得非常方便 .

    好吧,仔细看看你的问题

    如果我们可以直接横向PDOStatement对象,为什么它们使fetchAll()(和fetch())可用?

    我认为这样的“直接遍历”仅仅是一种语法糖,下面有一个很好的旧fetch()或类似的东西 .

相关问题