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 -p

Crie 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

Nota

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.php

Em 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>
html

Cada script PHP deve começar com a tag de abertura PHP:

<?php
php

Em 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";
php

Depois, 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());  
}
?>
php

Passo 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>
html

A 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";
    } 
?>
php

Lembre-se de fechar a tabela e o bloco HTML ao final do documento:

</table>
</body>
</html>
html

Para testar o script, abra showreviews.php em um navegador.

Imagem: Captura de tela do showreviews.php no navegador
A tabela agora é exibida no 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>
php

Com isso, seu script PHP já exibe os dados armazenados no MySQL/MariaDB diretamente em uma tabela HTML.

Este artigo foi útil?
Ir para o menu principal