Como extrair informações de MySQL/MariaDB com PHP mysqli_query
Com PHP, você pode extrair facilmente informações de um banco de dados MySQL ou MariaDB. Para isso, primeiro deve estabelecer uma conexão com o banco de dados e depois executar uma consulta SQL utilizando a função mysqli_query() do PHP, cujos resultados podem ser processados e exibidos no site.
Requisitos
Para obter informações de um banco de dados MySQL ou MariaDB com PHP, você deve cumprir alguns requisitos básicos. Primeiro, é necessário um ambiente PHP funcional no servidor, geralmente junto com um servidor web como Apache ou Nginx. Se ainda não tiver, você deve primeiro instalar o PHP. Além disso, certifique-se de ter MySQL ou MariaDB instalados. Por fim, o PHP deve contar com a extensão MySQLi, que normalmente vem incluída na maioria das instalações padrão.
Obter informações de MySQL/MariaDB com PHP
Neste tutorial, mostramos como criar um banco de dados MySQL ou MariaDB com sua tabela e usuário, e como acessá-lo a partir de PHP. Passo a passo, você aprenderá a construir uma pequena página web de exemplo que consulta as avaliações de restaurantes armazenadas no banco de dados e as exibe em uma tabela HTML.
Passo 1: criar o banco de dados
O primeiro passo consiste em criar o banco de dados. Para isso, faça login no cliente do MySQL ou MariaDB a partir da linha de comando:
mysql -u root -pCrie um banco de dados para as avaliações:
CREATE DATABASE reviews;Mude para este banco de dados:
USE reviews;Para este exemplo, criaremos uma única tabela com os seguintes campos:
- ID: chave primária da tabela, configurada como AUTO_INCREMENT
- Nome do avaliador: campo de texto com um comprimento máximo de 100 caracteres
- Classificação de estrelas: valor numérico de 1 a 5 (tipo TINYINT)
- Resenha: campo de texto com um limite aproximado de 500 palavras (tipo VARCHAR(4000))
Crie a tabela com o comando CREATE TABLE:
CREATE TABLE user_review (
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
reviewer_name VARCHAR(100),
star_rating TINYINT,
details VARCHAR(4000)
);Agora, adicionamos duas resenhas de exemplo à tabela:
INSERT INTO user_review (reviewer_name, star_rating, details) VALUE ('Ben', '5', 'Adoro o calzone!');
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', '1', 'Calzones são os piores.');Passo 2: criar usuário de banco de dados
No próximo passo, crie um usuário para o banco de dados. Por razões de segurança, é sempre melhor criar um usuário único para cada banco de dados, especialmente se o acesso for realizado a partir de uma página web.
O seguinte comando cria um usuário chamado review_site com a senha JxSLRkdutW e lhe concede acesso ao banco de dados recém-criado:
CREATE USER 'review_site'@'localhost' IDENTIFIED BY 'JxSLRkdutW';
GRANT SELECT ON reviews.* TO 'review_site'@'localhost';Passo 3: criar script PHP
O código deste tutorial foi simplificado para fins ilustrativos. Ao desenvolver uma página web, recomendamos seguir as práticas de segurança habituais para garantir que seus scripts PHP não comprometam o acesso nem a segurança do servidor.
Crie um arquivo showreviews.php em seu espaço web e abra-o para editar. Por exemplo, para criar o arquivo no diretório /var/www/html, o comando com o editor nano é:
sudo nano /var/www/html/showreviews.phpEm nosso exemplo, o PHP estará embutido em HTML, portanto, a página começará com as declarações básicas de HTML. O estilo CSS também se encontra no cabeçalho HTML:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
table {
border-collapse: collapse;
margin: 20px auto;
width: 80%;
}
th, td {
border: 1px solid black;
padding: 5px 10px;
text-align: left;
}
</style>
</head>
<body>htmlCada script PHP deve começar com a tag de abertura PHP:
<?phpphpEm seguida, adicione um bloco de conexão MySQL/MariaDB com a localização do servidor (localhost), o nome do banco de dados, assim como o nome de usuário e a senha do banco de dados.
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";phpDepois, adicionamos uma seção para estabelecer uma conexão com o banco de dados. Se a conexão falhar, será exibida uma mensagem de erro. Você pode estabelecer uma conexão entre seu script PHP e seu banco de dados MySQL ou MariaDB com mysqli_connect(). São passados o nome do host, o nome de usuário, a senha e o nome do banco de dados, para que o PHP saiba exatamente com qual banco de dados deve trabalhar.
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
die("Database connection failed: " . mysqli_connect_error());
}
?>phpPasso 4: inserir a tabela
No próximo passo, adicione o seguinte código HTML ao script para criar a tabela onde mostraremos os dados:
<table>
<tr>
<th>Nome do Avaliador</th>
<th>Estrelas</th>
<th>Detalhes</th>
</tr>htmlA seguir, está o código PHP que consulta o banco de dados, percorre os resultados e exibe cada resenha em sua própria linha da tabela:
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo "<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>\n";
}
?>phpLembre-se de fechar a tabela e o bloco HTML ao final do documento:
</table>
</body>
</html>htmlPara testar o script, abra showreviews.php em um navegador.

Passo 5: o script completo
O script PHP completo é:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
table {
border-collapse: collapse;
margin: 20px auto;
width: 80%;
}
th, td {
border: 1px solid black;
padding: 5px 10px;
text-align: left;
}
</style>
</head>
<body>
<?php
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
die("Conexão com o banco de dados falhou: " . mysqli_connect_error());
}
?>
<table>
<tr>
<th>Nome do Avaliador</th>
<th>Estrelas</th>
<th>Detalhes</th>
</tr>
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo "<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>\n";
}
mysqli_close($dbconnect);
?>
</table>
</body>
</html>phpCom isso, seu script PHP já exibe os dados armazenados no MySQL/MariaDB diretamente em uma tabela HTML.

