PDOStatement: Uzyskanie różnych wyników między `fetchAll ($ mode);` i `setFetchMode ($ mode); fetchAll (); `

Mam pytanie dotyczące PDO.

Czy jest różnica między

$sql = "SELECT * FROM pages";
$pdo = $this->db->query($sql);
$result = $pdo->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC); 

i

$sql = "SELECT * FROM pages";
$pdo = $this->db->query($sql);
$pdo->setFetchMode(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
$result = $pdo->fetchAll();

?

Dostaję inny$result dla każdego z nich.

Dokumentacja PHP dotycząca tych trybów pobierania nie jest dla mnie jasna.

Mam tabelę z różnymi stronami i chcę pobrać wszystkie strony indeksowane przez ich identyfikator.

Pierwsza metoda zwraca to:

[
   [id of page 1] => [
      [0] => [ page 1 ],
   ],
   [id of page 2] => [
      [0] => [ page 2 ],
   ],
   ...
]

Kiedy wykonuję drugą metodę, otrzymuję tylko:

[
   [0] => [ page 1 ],
   [1] => [ page 2 ],
   [3] => [ page 3 ],
   ...
]

Chcę tego w ten sposób:

[
   [id of page 1] => [ page 1 ],
   [id of page 2] => [ page 2 ],
   [id of page 3] => [ page 3 ],
   ...
]

Pierwszy z nich jest dla mnie wystarczająco dobry, ponieważ mogę go łatwo dostosować za pomocą funkcji mapowania tablicy:

array_map('reset', $result);

questionAnswers(1)

yourAnswerToTheQuestion