PDOStatement::fetchAll — Retorna um array contendo todas as linhas no conjunto de resultados (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
array PDOStatement::fetchAll ([ int $fetch_style [, misto $fetch_argument [, array $ctor_args = array() ]]] )
buscar_style
Controla como a próxima linha é retornada ao chamador. Este valor deve ser uma das séries de constantes PDO::FETCH_* e o padrão é o valor de PDO::ATTR_DEFAULT_FETCH_MODE (o padrão é PDO::FETCH_BOTH).
Para retornar uma matriz contendo todos os valores de uma única coluna no conjunto de resultados, especifique PDO::FETCH_COLUMN. Obtenha a coluna desejada especificando o parâmetro column-index.
Para obter o valor exclusivo de uma única coluna no conjunto de resultados, você precisa OR PDO::FETCH_COLUMN e PDO::FETCH_UNIQUE bit a bit.
Para retornar um array associativo com valores agrupados de acordo com a coluna especificada, você precisa OR PDO::FETCH_COLUMN e PDO::FETCH_GROUP bit a bit.
fetch_argumentEste parâmetro tem significados diferentes dependendo do valor do parâmetro fetch_style:
PDO::FETCH_COLUMN
: Retorna a coluna especificada indexada começando em 0.
PDO::FETCH_CLASS
: Retorna uma instância da classe especificada, mapeando as colunas de cada linha para o nome do atributo correspondente na classe.
PDO::FETCH_FUNC
: Passe as colunas de cada linha como parâmetros para a função especificada e retorne o resultado após chamar a função.
ctor_args Quando o parâmetro fetch_style é PDO::FETCH_CLASS, os parâmetros do construtor da classe customizada.
PDOStatement::fetchAll() retorna um array contendo todas as linhas restantes no conjunto de resultados. Cada linha desta matriz é uma matriz de valores de coluna ou um objeto com propriedades correspondentes ao nome de cada coluna.
Usar esse método para obter grandes conjuntos de resultados sobrecarregará o sistema e poderá consumir recursos de rede significativos. Em vez de recuperar todos os dados e depois operá-los com PHP, considere usar um serviço de banco de dados para processar o conjunto de resultados. Por exemplo, use as cláusulas WHERE e ORDER BY em SQL para qualificar os resultados antes de recuperar os dados e processá-los por meio de PHP.
<?php$sth = $dbh->prepare("SELECT nome, cor FROM fruta");$sth->execute();/* Obtém todas as linhas restantes no conjunto de resultados*/print("Busca todos os linhas restantes no conjunto de resultados:n");$result = $sth->fetchAll();print_r($result);?>
A saída do exemplo acima é:
Busque todas as linhas restantes no conjunto de resultados:Array( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NOME] => melancia [0] => melancia [COLOR] => rosa [1] => rosa))
O exemplo a seguir demonstra como retornar todos os valores de uma única coluna de um conjunto de resultados, embora a própria instrução SQL possa retornar várias colunas por linha.
<?php$sth = $dbh->prepare("SELECT nome, cor FROM fruta");$sth->execute();/* Obtém todos os valores na primeira coluna*/$result = $sth-> fetchAll(PDO ::FETCH_COLUMN, 0);var_dump($resultado);?>
A saída do exemplo acima é:
Array(3)( [0] => string(5) => maçã [1] => string(4) => pêra [2] => string(10) => melancia)
O exemplo a seguir demonstra como retornar uma matriz associativa agrupada pelos valores de uma coluna especificada no conjunto de resultados. A matriz contém três chaves: as matrizes maçã e pêra retornadas contêm duas cores diferentes, enquanto a matriz melancia retornada contém apenas uma cor.
<?php$insert = $dbh->prepare("INSERT INTO fruta(nome, cor) VALUES (?, ?)");$insert->execute(array('maçã', 'verde'));$inserir ->execute(array('pear', 'yellow'));$sth = $dbh->prepare("SELECIONE nome, cor FROM fruta");$sth->execute();/* Grupo baseado na primeira coluna*/var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));?>
A saída do exemplo acima é:
array(3) { ["maçã"]=> array(2) { [0]=> string(5) "verde" [1]=> string(3) "vermelho" } ["pêra"]=> array (2) { [0]=> string(5) "verde" [1]=> string(6) "amarelo" } ["melancia"]=> array(1) { [0]=> string(5) "verde" }}
O exemplo a seguir demonstra o comportamento do estilo de aquisição PDO::FETCH_CLASS.
<?phpclass fruta { public $nome; public $cor;}$sth = $dbh->prepare("SELECIONE nome, cor FROM fruta");$sth->execute();$result = $sth->fetchAll( PDO::FETCH_CLASS, "fruta");var_dump($resultado);?>
A saída do exemplo acima é:
array(3) { [0]=> object(fruta)#1 (2) { ["nome"]=> string(5) "maçã" ["cor"]=> string(5) "verde" } [ 1]=> objeto(fruta)#2 (2) { ["nome"]=> string(4) "pêra" ["cor"]=> string(6) "amarelo" } [2]=> objeto( fruta)#3 (2) { ["nome"]=> string(10) "melancia" ["cor"]=> string(4) "rosa" }}
O exemplo a seguir demonstra o comportamento do estilo get PDO::FETCH_FUNC.
<?phpfunction fruta($nome, $cor) { return "{$nome}: {$cor}";}$sth = $dbh->prepare("SELECIONE nome, cor FROM fruta");$sth->executar ();$resultado = $sth->fetchAll(PDO::FETCH_FUNC, "fruta");var_dump($resultado);?>
A saída do exemplo acima é:
array(3) { [0]=> string(12) "maçã: verde" [1]=> string(12) "pêra: amarelo" [2]=> string(16) "melancia: rosa"}