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);