为什么我们在使用PDO :: query()时使用fetch()?

时间:2015-07-24 07:57:59

标签: php pdo

因此,我们知道PDO::query()返回PDOStatement objectPDOStatement类实现Traversable,因此它允许我们使用{{1}循环访问它的对象循环:

foreach

代码很干净。 (我知道由于使用$db = new PDO($dsn, $dbusername, dbpassword); $sql = 'SELECT name, surname, gender FROM students'; $stmt = $db->query($sql); foreach($stmt as $row){ echo $row['name'] . "<br>"; echo $row['surname'] . "<br>"; echo $row['gender'] . "<br>"; } 的安全问题可以创建,我们都应该忠实于query()prepare()。)

我的问题是,当我们在不使用它的情况下获得相同的结果时,为什么我们懒得使用excecute()来检索数据。在我看来,这是一个额外的步骤。

1 个答案:

答案 0 :(得分:0)

  1. 因为有些查询只返回一行,因此foreach循环将是额外步骤
  2. 因为可遍历的PDOStatement只是一种语法糖,只是另一种方式,对于任何喜欢这种方式的人来说都是如此。虽然fetch()仍然是最熟悉和最简单的方法。