PDOStatement :: fetchAll
Podręcznik PHP PDO referencyjny
PDOStatement :: fetchAll - zwraca tablicę wszystkich wierszy w zbiorze wynikowym (PHP 5> = 5.1.0, PECL pdo> = 0.1.0)
wyjaśnienie
gramatyka
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
parametry
fetch_style
Jak kontrolować linia jest zwrócony do wywołującego. Ta wartość musi być PDO :: FETCH_ * stałe w serii, wartość domyślna dla PDO :: ATTR_DEFAULT_FETCH_MODE (domyślnie PDO :: FETCH_BOTH).
Aby zwrócić zestaw wyników, która zawiera tablicę wszystkich wartości w jednej kolumnie, należy określić PDO :: FETCH_COLUMN. Uzyskaj odpowiednie kolumny, określając parametr kolumny indeksu.
Chcesz uzyskać zestaw wyników unikalnych wartości w jednej kolumnie, trzeba PDO :: FETCH_COLUMN i PDO :: FETCH_UNIQUE bitowym OR.
Aby powrócić kolumnę w oparciu o określoną wartość w tablicy asocjacyjnej zgrupowanych, musimy PDO :: FETCH_COLUMN i PDO :: bitowego FETCH_GROUP lub.
fetch_argument
Fetch_style parametr na podstawie wartości tego parametru ma inne znaczenie:
PDO::FETCH_COLUMN
: powraca do zera indeksowanych kolumnach.PDO::FETCH_CLASS
: Zwraca wystąpienie określonej klasy, kolumna mapowania dla każdego wiersza odpowiadające klasie nazwę atrybutu.PDO::FETCH_FUNC
: kolumna każdego wiersza jako argument do określonej funkcji i zwraca wynik po wywołanie funkcji.
ctor_args
Gdy parametry fetch_style PDO :: FETCH_CLASS, od definicji parametrów konstruktora klasy.
Wartość zwracana
PDOStatement :: fetchAll () zwraca zestaw wyników, która zawiera tablicę wszystkich pozostałych liniach. Każdy wiersz tej tablicy jest tablicą lub wartość kolumny lub atrybutu obiektu odpowiadającego każdej nazwy kolumny.
Za pomocą tej metody, aby uzyskać duży zestaw wyników spowoduje obciążenie systemu i może zająć dużo zasobów sieciowych. Pobieranie wszystkich danych i ich wykorzystania PHP do działania, to byłoby lepiej, aby rozważyć zastosowanie usług bazodanowych do czynienia ze zbiorem wynikowym. Na przykład, przed i pobieranie danych przez proces PHP do określenia wyników z WHERE i ORDER BY klauzul SQL.
Przykłady
Uzyskaj wszystkich pozostałych wierszy w zbiorze wynikowym
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取结果集中所有剩余的行 */ print("Fetch all of the remaining rows in the result set:\n"); $result = $sth->fetchAll(); print_r($result); ?>
Wyjście powyższym przykładzie:
Fetch all of the remaining rows in the result set: Array ( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink ) )
Będąc pojedynczy wynik ustawić wszystkie wartości
Poniższy przykład pokazuje, jak skoncentrować się odrębnym zeznaniu wszystkie wartości z wyniku, mimo że sama instrukcja SQL może wrócić wiele kolumn w każdym wierszu.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
Wyjście powyższym przykładzie:
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
Według oddzielnego grupowania wszystkich wartości
Poniższy przykład pokazuje, w jaki sposób zwracać asocjacyjna scentralizowane określoną wartość kolumny oparte na wynikach pakietu. Tablica zawiera trzy przyciski: jabłko i gruszka zwrócona tablica zawiera dwa różne kolory, a arbuz zwrócona tablica zawiera tylko jeden kolor.
<?php $insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)"); $insert->execute(array('apple', 'green')); $insert->execute(array('pear', 'yellow')); $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 根据第一列分组 */ var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); ?>
Wyjście powyższym przykładzie:
array(3) { ["apple"]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } ["pear"]=> array(2) { [0]=> string(5) "green" [1]=> string(6) "yellow" } ["watermelon"]=> array(1) { [0]=> string(5) "green" } }
Każdy wiersz w wyniku wystąpienia klasy
Liezi poniżej pokazuje PDO :: FETCH_CLASS Pobiera styl zachowania.
<?php class fruit { public $name; public $colour; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit"); var_dump($result); ?>
Wyjście powyższym przykładzie:
array(3) { [0]=> object(fruit)#1 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(5) "green" } [1]=> object(fruit)#2 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(6) "yellow" } [2]=> object(fruit)#3 (2) { ["name"]=> string(10) "watermelon" ["colour"]=> string(4) "pink" } }
Każda linia wywołuje funkcję
Liezi poniżej pokazuje PDO :: FETCH_FUNC Pobiera styl zachowania.
<?php function fruit($name, $colour) { return "{$name}: {$colour}"; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit"); var_dump($result); ?>
Wyjście powyższym przykładzie:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }