PDOStatement :: fetchAll
Manuale PHP DOP di riferimento
PDOStatement :: fetchAll - restituisce una matrice di tutte le righe del set di risultati (PHP 5> = 5.1.0, PECL DOP> = 0.1.0)
spiegazione
grammatica
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
parametri
fetch_style
Come controllare la riga successiva viene restituito al chiamante. Questo valore deve essere DOP :: FETCH_ * costanti in serie, il valore predefinito per la DOP :: ATTR_DEFAULT_FETCH_MODE (default DOP :: FETCH_BOTH).
Per restituire un set di risultati che contiene un array di tutti i valori in una singola colonna, è necessario specificare PDO :: FETCH_COLUMN. Ottenere le colonne desiderate specificando parametro colonna-index.
Vuoi ottenere il set di risultati di valori unici in una singola colonna, è necessario ai prodotti DOP :: FETCH_COLUMN e PDO :: bit FETCH_UNIQUE o.
Per restituire una colonna in base al valore specificato della matrice associativa raggruppati, dobbiamo ai prodotti DOP :: FETCH_COLUMN e PDO :: FETCH_GROUP OR bit a bit.
fetch_argument
parametro Fetch_style sulla base del valore di questo parametro ha un significato diverso:
PDO::FETCH_COLUMN
: ritorna alle colonne zero indicizzati.PDO::FETCH_CLASS
: restituisce un'istanza della classe specificata, colonna mappatura per ogni riga corrispondente alla classe di attributo nome.PDO::FETCH_FUNC
: la colonna di ogni riga come argomento per la funzione specificata, e restituisce il risultato dopo funzione di chiamata.
ctor_args
Quando i parametri fetch_style DOP :: FETCH_CLASS, dal momento che la definizione dei parametri di classe del costruttore.
Valore di ritorno
PDOStatement :: fetchAll () restituisce un set di risultati che contiene una matrice di tutte le linee rimanenti. Ogni riga di questa matrice è un array o un valore di colonna, o un attributo dell'oggetto corrispondente a ogni nome di colonna.
Utilizzare questo metodo per ottenere un ampio set di risultati causerà l'onere del sistema e può prendere un sacco di risorse di rete. Recuperare tutti i dati e il suo uso PHP per funzionare, sarebbe meglio prendere in considerazione l'uso di servizi di database a che fare con il set di risultati. Ad esempio, prima e recuperare i dati attraverso il processo di PHP per definire i risultati con WHERE e ORDER BY in SQL.
Esempi
Ottenere tutti i restanti righe nel set di risultati
<?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); ?>
L'output dell'esempio precedente è:
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 ) )
Essendo un singolo risultato impostare tutti i valori
L'esempio seguente mostra come concentrare un ritorno separata tutti i valori da un risultato, anche se l'istruzione SQL si può restituire più colonne per riga.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
L'output dell'esempio precedente è:
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
Secondo un raggruppamento separata tutti i valori
L'esempio seguente mostra come restituire un valore di colonna specificato array associativo centralizzata sulla base dei risultati del pacchetto. L'array contiene tre tasti: mela e pera matrice restituita contiene due colori diversi, mentre l'anguria tornato matrice contiene un solo colore.
<?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)); ?>
L'output dell'esempio precedente è:
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" } }
Ogni riga nel risultato istanziare una classe
Liezi seguente mostra PDO :: FETCH_CLASS Ottiene comportamento stile.
<?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); ?>
L'output dell'esempio precedente è:
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" } }
Ogni linea richiama una funzione
Liezi seguente mostra PDO :: FETCH_FUNC Ottiene comportamento stile.
<?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); ?>
L'output dell'esempio precedente è:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }