PDO consultando dados

Resumo : neste tutorial você aprenderá a consultar dados de uma tabela usando PHP PDO usando o query()método do PDOobjeto e uma instrução preparada.

Para selecionar dados de uma tabela usando PDO, você pode usar:

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:

  1. Crie uma conexão de banco de dados com o servidor de banco de dados .
  2. Execute uma SELECTinstrução passando-a para o query()método de um PDOobjeto.

O query()método retorna um PDOStatementobjeto. Se ocorrer um erro, o query()método retornará false.

O seguinte ilustra como consultar todas as linhas da publisherstabela no bookdbbanco 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_ASSOCmodo, PDOStatementretorna 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 bookdbbanco de dados:

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

Segundo, defina uma SELECTinstrução SQL para selecionar todas as linhas da publisherstabela:

$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_ASSOCopçã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.phppara se conectar ao bookdbbanco 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 uma SELECTinstrução para consultar dados de uma ou mais tabelas.

Deixe um comentário

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