Resumo : neste tutorial você aprenderá a consultar dados de uma tabela usando PHP PDO usando o query()
método do PDO
objeto e uma instrução preparada.
Para selecionar dados de uma tabela usando PDO, você pode usar:
- O
query()
método de um objeto DOP. - Ou uma declaração preparada .
Quando uma consulta não possui parâmetros, você pode usar o query()
método. Por exemplo:
SELECT * FROM publishers;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Entretanto, se uma consulta aceitar um ou mais parâmetros, você deverá usar uma instrução preparada por motivos de segurança.
Usando o método query() para selecionar dados de uma tabela
Para consultar dados de uma tabela usando o query()
método, siga estas etapas:
- Crie uma conexão de banco de dados com o servidor de banco de dados .
- Execute uma
SELECT
instrução passando-a para oquery()
método de umPDO
objeto.
O query()
método retorna um PDOStatement
objeto. Se ocorrer um erro, o query()
método retornará false
.
O seguinte ilustra como consultar todas as linhas da publishers
tabela no bookdb
banco de dados:
<?php
$pdo = require 'connect.php';
$sql = 'SELECT publisher_id, name
FROM publishers';
$statement = $pdo->query($sql);
// get all publishers
$publishers = $statement->fetchAll(PDO::FETCH_ASSOC);
if ($publishers) {
// show the publishers
foreach ($publishers as $publisher) {
echo $publisher['name'] . '<br>';
}
}
Linguagem de código: HTML, XML ( xml )
Saída:
McGraw-Hill Education
Penguin/Random House
Hachette Book Group
Harper Collins
Simon and Schuster
Quando você usa o PDO::FETCH_ASSOC
modo, PDOStatement
retorna uma matriz associativa de elementos em que a chave de cada elemento é o nome da coluna do conjunto de resultados.
Como funciona.
Primeiro, crie uma conexão de banco de dados com o bookdb
banco de dados:
$pdo = require 'connect.php';
Linguagem de código: PHP ( php )
Segundo, defina uma SELECT
instrução SQL para selecionar todas as linhas da publishers
tabela:
$sql = 'SELECT publisher_id, name FROM publishers';
Linguagem de código: PHP ( php )
Terceiro, execute a consulta chamando o query()
método do objeto PDO:
$statement = $pdo->query($sql);
Linguagem de código: PHP ( php )
Quarto, busque todos os dados do conjunto de resultados:
$publishers = $statement->fetchAll(PDO::FETCH_ASSOC);
Linguagem de código: PHP ( php )
O fetchAll()
método com a PDO::FETCH_ASSOC
opção retorna uma matriz associativa de dados onde:
- As chaves são os nomes que aparecem na lista de seleção
- e os valores são as linhas de dados no conjunto de resultados.
Finalmente, itere sobre o conjunto de resultados e mostre o elemento do array:
<?php
// show the publishers
if ($publishers) {
foreach ($publishers as $publisher) {
echo $publisher['name'] . '<br>';
}
}
Linguagem de código: HTML, XML ( xml )
Usando uma instrução preparada para consultar dados
O exemplo a seguir ilustra como usar uma instrução preparada para consultar dados de uma tabela:
<?php
$publisher_id = 1;
// connect to the database and select the publisher
$pdo = require 'connect.php';
$sql = 'SELECT publisher_id, name
FROM publishers
WHERE publisher_id = :publisher_id';
$statement = $pdo->prepare($sql);
$statement->bindParam(':publisher_id', $publisher_id, PDO::PARAM_INT);
$statement->execute();
$publisher = $statement->fetch(PDO::FETCH_ASSOC);
if ($publisher) {
echo $publisher['publisher_id'] . '.' . $publisher['name'];
} else {
echo "The publisher with id $publisher_id was not found.";
}
Linguagem de código: HTML, XML ( xml )
Como funciona.
Primeiro, defina um ID de editor. Na prática, você pode obtê-lo na string de consulta:
<?php
$publisher_id = 1;
Linguagem de código: HTML, XML ( xml )
Segundo, use o connect.php
para se conectar ao bookdb
banco de dados e retornar uma nova instância do objeto PDO:
$pdo = require 'connect.php';
Linguagem de código: PHP ( php )
Terceiro, construa uma instrução SQL SELECT com um espaço reservado nomeado ( :publisher_id
)
$sql = 'SELECT publisher_id, name
FROM publishers
WHERE publisher_id = :publisher_id';
Linguagem de código: PHP ( php )
Quarto, vincule o valor do id à instrução preparada:
$statement->bindParam(':publisher_id', $publisher_id, PDO::PARAM_INT);
Linguagem de código: PHP ( php )
Quinto, execute a instrução preparada:
$statement->execute();
Linguagem de código: PHP ( php )
Sexto, busque uma linha do conjunto de resultados em uma matriz associativa:
$publisher = $statement->fetch(PDO::FETCH_ASSOC);
Linguagem de código: PHP ( php )
Por fim, mostre as informações do editor ou uma mensagem de erro:
if ($publisher) {
echo $publisher['publisher_id'] . '.' . $publisher['name'];
} else {
echo "The publisher with id $publisher_id was not found.";
}
Linguagem de código: PHP ( php )
Resumo
- Use o
query()
método de um objeto PDO para executar umaSELECT
instrução para consultar dados de uma ou mais tabelas.