簡體   English   中英

為什么在使用PDO :: query()時使用fetch()?

[英]Why do we use fetch() while using PDO::query()?

因此,我們知道PDO::query()返回PDOStatement object ,並且PDOStatement類實現了Traversable因此它允許我們使用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() 。)

我的問題是,為什么在不使用數據獲取相同結果的情況下,為什么還要使用fetch()來檢索數據呢? 在我看來,這是一個額外的步驟。

  1. 因為有些查詢僅返回一行,所以foreach循環將是一個額外的步驟
  2. 因為可遍歷的PDOStatement只是語法糖, 所以對於喜歡這種方式的任何人來說,這都是另一種實現方式。 雖然fetch()仍然是最熟悉和直接的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM