PDOStatement: получение разных результатов между `fetchAll ($ mode);` и `setFetchMode ($ mode); fetchAll (); `

У меня есть вопрос по поводу PDO.

Есть ли разница между

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

а также

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

?

Я получаю другое$result для каждого из них.

Документация от PHP об этих режимах выборки мне не очень понятна.

У меня есть таблица с разными страницами, и я хочу получить все страницы, проиндексированные по их идентификатору.

Первый метод возвращает это:

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

Когда я делаю второй метод, я получаю только:

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

Я хочу это так:

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

Первый достаточно хорош для меня, потому что я могу легко настроить его с помощью функции массива карты:

array_map('reset', $result);

Ответы на вопрос(1)

Ваш ответ на вопрос