Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@flyingluscas
Last active September 9, 2021 00:35
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save flyingluscas/e9adfb2605d26cf4c15ac1f0374afb14 to your computer and use it in GitHub Desktop.
Save flyingluscas/e9adfb2605d26cf4c15ac1f0374afb14 to your computer and use it in GitHub Desktop.
Formulários e MySQLi no PHP

MySQLi Exemplos

1. Conexão

Vamos criar um arquivo chamado connection.php, neste arquivo vamos abrir uma conexão com nosso banco de dados.

Dessa forma, quando precisarmos de uma conexão com o banco de dados para executar uma query, só precisamos incluir o arquivo connection.php.

$link = mysqli_connect('localhost', 'username', 'password', 'database_name') or die(mysqli_connect_error());

// Configurando o charset de caracteres do cliente
mysqli_set_charset($link, 'utf8');

2. Inserindo informações

Neste exemplo estamos inserindo um novo usuário em nossa tabela users do banco de dados.

require 'connection.php';

$query = 'insert into `users` (`name`, `email`) values ("Lucas Pires", "lucas.pires.mattos@gmail.com")';

mysqli_query($link, $query) or die(mysqli_error($link));

3. Lendo informações

Neste exemplo, estamos lendo todos os usuários cadastrados na tabela users e exibindo em uma lista.

require 'connection.php';

$query = 'select * from `users`';
$results = mysqli_query($link, $query) or die(mysqli_error($link));

if (! mysqli_num_rows($results)) {
    echo 'Nenhum usuário encontrado...';
} else {
    while ($user = mysqli_fetch_object($results)) {
        echo $user->name, "\n";
    }
}

4. Atualizando informações

Neste exemplo estamos atualizando o e-mail do usuário com id igual a 1 da nossa tabela users.

require 'connection.php';

$query = 'update `users` set `email` = "novo@email.com" where `id` = 1';

mysqli_query($link, $query) or die(mysqli_error($link));

5. Deletando informações

Neste exemplo estamos deletando o usuário com id igual a 1 da nossa tabela users.

require 'connection.php';

$query = 'delete from `users` where `id` = 1';

mysqli_query($link, $query) or die(mysqli_error($link));

Formulários exemplos

1. Criando o formulário

Primeiro vamos construir um formulário simples para o cadastro de um usuário.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Cadastro de usuário</title>
</head>

<body>
    <form action="signup.php" method="post">
        <p>
            <label>Nome</label><br>
            <input type="text" name="name">
        </p>

        <p>
            <label>E-mail</label><br>
            <input type="text" name="email">
        </p>

        <button type="submit">Cadastrar</button>
    </form>
</body>
</html>
```

Note que em nossa tag `form` definimos o atributo `action` com o valor `signup.php`, quando o formulário é enviado, este arquivo `signup.php` irá receber uma **requisição** com os dados (`name`, `email`) preenchidos no formulário, o tipo desta **requisição** é definido no attributo `method`, e foi definido com `POST`, isso quer dizer que o arquivo `signup.php` deve receber uma requisição do tipo `POST` quando o botão `Cadastrar` for pressionado.

### 2. Recebendo dados do formulário e salvando no banco

Ok, nosso formulário está criado e configurado para enviar os dados preenchidos para o arquivo `signup.php`, então vamos criar este arquivo, tratar e salvar os dados recebidos no banco de dados.

``` php
require 'connection.php';

// Armazenando os dados enviados pelo formulário em um array na var $post
$post = filter_input_array(INPUT_POST, FILTER_DEFAULT);

// Separando informações que devem ser inseridas no banco de dados
// Lembrando que os indices do array devem ter os mesmos nomes dos campos no formulário (definido pelo attribudo 'name' nas tags 'input')
// Utilizamos a função `mysqli_real_escape_string` para proteger o nosso banco de dados contra SQL Injections
// Veja mais sobre SQL Injections em https://pt.wikipedia.org/wiki/Inje%C3%A7%C3%A3o_de_SQL
$name = mysqli_real_escape_string($link, $post['name']);
$email = mysqli_real_escape_string($link, $post['email']);


// Preparando a query com os valores preenchidos no formulário
$query = "insert into `users` (`name`, `email`) values ('{$name}', '{$email}')";

// Executando query
mysqli_query($link, $query) or die(mysqli_error($link));
```
@nickbiazzini
Copy link

OBRIGADÃO MESMO :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment