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