buscar tudo

Resumo : neste tutorial, você aprenderá como usar o fetchAll()método PHP do PDOStatementobjeto para retornar um array contendo todas as linhas de um conjunto de resultados.

Introdução ao método fetchAll() do PHP

O fetchAll()é um método da PDOStatementclasse. O fetchAll()método permite buscar todas as linhas de um conjunto de resultados associado a um PDOStatementobjeto em um array.

O seguinte mostra a sintaxe do fetchAll()método:

public function fetchAll(int $mode = PDO::FETCH_DEFAULT): arrayLinguagem de código:  PHP  ( php )

O $modeparâmetro determina como fetchAll()retorna a próxima linha. O $modeparâmetro aceita uma das PDO::FETCH_*constantes. Os modos mais comumente usados ​​são:

  • PDO::FETCH_BOTH– retorna uma matriz indexada pelo nome da coluna e pelo número da coluna indexada em 0. Este é o padrão.
  • PDO::FETCH_ASSOC– retorna um array indexado pelo nome da coluna
  • PDO::FETCH_CLASS– retorna uma nova instância de classe mapeando as colunas para as propriedades do objeto.

O fetchAll()método retorna uma matriz que contém todas as linhas de um conjunto de resultados.

Se o conjunto de resultados estiver vazio, o fetchAll()método retornará um array vazio. Se fetchAll()não conseguir buscar dados, ele retornará false.

É importante observar que se você tiver um conjunto de resultados grande, poderá fetchAll()consumir muita memória do servidor e possivelmente recursos de rede. Para evitar isso, você deve executar uma consulta que recupere apenas os dados necessários do servidor de banco de dados.

Usando o método PHP fetchAll() com o método query()

Se uma consulta não aceitar um parâmetro, você poderá buscar todas as linhas do conjunto de resultados da seguinte maneira:

  • Primeiro, execute a consulta chamando o query()método do PDOobjeto.
  • Em seguida, busque todas as linhas do conjunto de resultados em uma matriz usando o fetchAll()método.

O exemplo a seguir ilustra como usar o fetchAll()método para selecionar todas as linhas da publisherstabela:

<?php

// connect to the database to get the PDO instance
$pdo = require 'connect.php';

$sql = 'SELECT publisher_id, name 
        FROM publishers';

// execute a query
$statement = $pdo->query($sql);

// fetch all rows
$publishers = $statement->fetchAll(PDO::FETCH_ASSOC);

// display the publisher name
foreach ($publishers as $publisher) {
    echo $publisher['name'] . '<br>';
}Linguagem de código:  PHP  ( php )

Saída:

1.McGraw-Hill Education
2.Penguin/Random House
3.Hachette Book Group
4.Harper Collins
5.Simon and SchusterLinguagem de código:  texto simples  ( texto simples )

Como funciona.

Primeiro, conecte-se ao bookdbbanco de dados usando o connect.phpscript .

$pdo = require 'connect.php';Linguagem de código:  PHP  ( php )

Segundo, execute uma consulta que selecione publisher_ide nameda publisherstabela:

$sql = 'SELECT publisher_id, name 
        FROM publishers';
$statement = $pdo->query($sql);Linguagem de código:  PHP  ( php )

Terceiro, busque todas as linhas do conjunto de resultados em um array:

// display the publishers
foreach ($publishers as $publisher) {
    echo $publisher['name'] . '<br>';
}Linguagem de código:  PHP  ( php )

Usando o método fetchAll() com uma instrução preparada

Se uma consulta aceitar um ou mais parâmetros, você poderá:

  • Primeiro, execute uma instrução preparada .
  • Segundo, busque todas as linhas do conjunto de resultados em uma matriz usando o fetchAll()método.

O exemplo a seguir mostra como usar fetchAll()para buscar todos os editores com ID maior que 2:

<?php

// connect to the database to get the PDO instance
$pdo = require 'connect.php';

$sql = 'SELECT publisher_id, name 
        FROM publishers
        WHERE publisher_id > :publisher_id';

// execute a query
$statement = $pdo->prepare($sql);
$statement->execute([
    ':publisher_id' => 2
]);
// fetch all rows
$publishers = $statement->fetchAll(PDO::FETCH_ASSOC);

// display the publishers
foreach ($publishers as $publisher) {
    echo $publisher['publisher_id'] . '.' . $publisher['name'] . '<br>';
}Linguagem de código:  PHP  ( php )

Saída:

3.Hachette Book Group
4.Harper Collins
5.Simon and SchusterLinguagem de código:  texto simples  ( texto simples )

Resumo

  • Use o fetchAll()método para buscar uma linha do conjunto de resultados associado a um PDOStatementobjeto.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *