# 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](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/o-que-e-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](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-o-apache/) ou Nginx. Se ainda não tiver, você deve primeiro instalar o PHP. Além disso, certifique-se de ter MySQL ou [MariaDB](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/banco-de-dados-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](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/table-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:

```none
mysql -u root -p
```

Crie um banco de dados para as avaliações:

```none
CREATE DATABASE reviews;
```

Mude para este banco de dados:

```none
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](https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/mariadb-create-table/):

```none
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:

```none
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:

```none
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 é:

```none
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:

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

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.

```php
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
```

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.

```php
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if (!$dbconnect) {
	die("Database connection failed: " . mysqli_connect_error());  
}
?>
```

### 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:

```html
<table>
<tr>
    <th>Nome do Avaliador</th>
    <th>Estrelas</th>
    <th>Detalhes</th>
</tr>
```

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

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

```html
</table>
<div class="hash d-none" hidden>hash_ed9e966bdcd8769c6cb380e55a997b1f2331d477</div><script data-shy-copy-guard>(function(){var C=[0x00AD,0x200B,0x200C,0x200D,0x2060,0xFEFF];var s=function(t){for(var i=0;i<C.length;i++){t=t.split(String.fromCharCode(C[i])).join("");}return t;};document.addEventListener("copy",function(e){var sel=document.getSelection();if(!sel||sel.isCollapsed||!e.clipboardData){return;}e.clipboardData.setData("text/plain",s(sel.toString()));try{var d=document.createElement("div");d.appendChild(sel.getRangeAt(0).cloneContents());e.clipboardData.setData("text/html",s(d.innerHTML));}catch(x){}e.preventDefault();});})();</script></body>
</html>
```

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

[![Imagem: Captura de tela do showreviews.php no navegador](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/6/a/csm_mysql-mariadb-php-info_cb4362a58b.webp "Captura de tela do showreviews.php no navegador")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2025/mysql-mariadb-php-info.jpg) A tabela agora é exibida no navegador. ### Passo 5: o script completo

O script PHP completo é:

```php
<!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>
    <div class="hash d-none" hidden>hash_ed9e966bdcd8769c6cb380e55a997b1f2331d477</div><script data-shy-copy-guard>(function(){var C=[0x00AD,0x200B,0x200C,0x200D,0x2060,0xFEFF];var s=function(t){for(var i=0;i<C.length;i++){t=t.split(String.fromCharCode(C[i])).join("");}return t;};document.addEventListener("copy",function(e){var sel=document.getSelection();if(!sel||sel.isCollapsed||!e.clipboardData){return;}e.clipboardData.setData("text/plain",s(sel.toString()));try{var d=document.createElement("div");d.appendChild(sel.getRangeAt(0).cloneContents());e.clipboardData.setData("text/html",s(d.innerHTML));}catch(x){}e.preventDefault();});})();</script></body>
</html>
```

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


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/obter-dados-de-um-banco-de-dados-com-php-mysqli-query/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/obter-dados-de-um-banco-de-dados-com-php-mysqli-query/) for AI/LLM consumption.