CURSO GRATUITO DE PROGRAMAÇÃO COM CERTIFICADO

CURSO GRATUITO DE PROGRAMAÇÃO COM CERTIFICADO

Aprenda a criar seu primeiro projeto de programação do zero mesmo que você seja iniciante.

ACESSAR CURSO GRATUITO*Clique no botao para acessar

PHP: Inserindo Registros no Banco de Dados MySQL

PHP inserindo registros no banco de dados MySQL

No artigo anterior (Clique Aqui para Acessar), vimos como criar uma página PHP, criar cabeçalhos e rodapés para evitar repetição de código e como ler parâmetros.

Ou seja, o que falta agora é inserirmos esses parâmetros no banco de dados. Como já instalamos o MySQL (o XAMPP instalou para nós), vamos fazer uso dele.

Ativando o MySQL

Primeiramente, devemos levantar o servidor do MySQL e conectar nele. Se formos no painel de controle do XAMPP, vemos que o MySQL está desativado.

Ou seja, para ativar basta clicar no botão Start. Dependendo do seu sistema operacional, esse processo pode ser feito de maneira diferente.

Painel de controle do XAMPP

Com o MySQL no ar, podemos ir no PHPMyAdmin, que é um excelente administrador de MySql, que vem no XAMPP. Basta clicar no link que existe na página dashboard do XAMPP, e estamos nele.

Página de DashBoard do XAMPP

Portanto, se a tela inicial peça o nome do utilizador, digite “root” e deixe o campo de senha em branco.

Criando Banco de Dados MySQL

Primeiramente, dentro do phpMyAdmin, vamos clicar em New/Novo para criar uma nova Base de Dados, vamos criar um novo banco chamado “loja“.

Página phpMyAdmin

Com o banco criado, vamos criar a tabela que armazenará a lista de produtos. Na aba SQL, digite o comando abaixo:

create table produtos (id integer auto_increment primary key, nome varchar(255), preco decimal(10,2));

Clicando em Executar, a tabela será criada. Não vou entrar muito a fundo em SQL. Mais para frente vou publicar artigos sobre SQL.

Inserindo Dados no MySQL

Agora que criamos a nossa tabela, vamos inserir alguns produtos para ver o MySql funcionando.

Novamente, na aba SQL, digite os comandos abaixo e execute:

insert into produtos values (1, 'Carro', 20000);
insert into produtos values (2, 'Motocicleta', 10000);

Além disso, repare que os produtos inseridos nós informamos para o MySQL o ID do produto. Como a nossa tabela possui o “auto_increment” na coluna ID, podemos forçar o auto incremento, não passando o ID.

Digite o comando abaixo e execute:

insert into produtos (nome, preco) values ('Bicicleta', 300);

Repare que mesmo sem informar a coluna ID do Produto, o MySQL pegou o ultimo ID que é o numero 2, auto incrementou para incluir o próximo produto, gerando o ID numero 3.

Ou seja, se clicarmos em Browse, vemos a lista de todos os produtos adicionados. No nosso caso, 3 produtos.

Inserindo produtos pelo phpMyAdmin

Agora que temos um banco de dados no nosso MySql, vamos fazer o PHP inserir algo nele.

Conectando o PHP no MySQL

Voltando a editar o arquivo adiciona-produto.php, vamos escrever os comandos SQL nele:

<?php include("cabecalho.php"); ?>

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];

$query = "insert into produtos (nome, preco) values (?????)";
?>

Produto: <?= $nome; ?>, preco: <?= $preco; ?> - adicionado com sucesso!

<?php include("rodape.php"); ?>

Veja que guardamos a query em uma variável ($query), mas precisamos trocar os “??” pelos valores passados pelo usuário.

Geralmente, é comum que desenvolvedores concatenem esses valores na mão. Algo como:

$query = "insert into produtos (nome, preco) values ('" . $nome . "', " . $preco . ")";

Repare que o ponto (.) soma duas strings. Mas o problema disso é que é muito trabalhoso. O PHP nos dá uma maneira mais fácil de misturar strings e variáveis.

Chamamos isso de interpolação, e para isso, basta usar o símbolo chaves “{“ e “}”:

$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";

O PHP vai automaticamente pegar o valor da variável nome e preço e concatenar na string.

Fica mais fácil de ler. Mas repare que isso só funciona se a string for declarada com aspas duplas.

Vamos continuar, e mandar essa SQL para o banco de dados. A primeira coisa que devemos fazer é conectarmos no banco de dados, passando endereço, usuário e senha.

Para isso vamos utilizar a função mysqli_connect conforme exemplo abaixo:

$conexao = mysqli_connect('localhost', 'root', '', 'loja');

Em seguida, executamos a query através do comando mysqli_query:

mysqli_query($conexao, $query);

Por fim, fechamos a conexão utilizando o comando mysqli_close:

mysqli_close($conexao);

O nosso código completo ficou dessa forma:

<?php include("cabecalho.php"); ?>

    <?php
    $nome = $_GET["nome"];
    $preco = $_GET["preco"];
    
    $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
    
    $conexao = mysqli_connect('localhost', 'root', '', 'loja');
    mysqli_query($conexao, $query);
    mysqli_close($conexao);
    ?>
    <p class="alert-success">
        Produto: <?= $nome; ?>, preco: <?= $preco; ?> - adicionado com sucesso!
    </p>

<?php include("rodape.php"); ?>

Se testarmos agora a inserção de um lápis pelo formulário, isso deve funcionar. Vamos passar os valores através da URL.

Em seguida vamos acessar o MySql para ver que a linha foi adicionada.

Inserindo produto no MySQL pelo PHP
Consultando a inserção do produto no MySQL via PHP

Ao consultar o banco de dados, vimos que o produto Lápis foi realmente adicionado. Veja só como acessar o MySql pelo PHP é fácil. Basta apenas conhecer alguns métodos da biblioteca.

Validação de Dados com PHP

Mas existe um problema agora. Veja só o que acontece se não passarmos o nome e preço na página adiciona-produto.php.

Validando a inclusão de produtos

Apesar da aplicação web falar que a inserção foi feita, se formos no MySql, vemos que nenhuma linha foi adicionada.

Isso acontece porque o MySql deu um erro (afinal a SQL, sem nome e preço, fica errada!), mas nós não tratamos esse erro.

Precisamos então tratar esse erro, e fazemos isso na função de mysqli_query. Ela devolve true em caso de sucesso, ou false em caso de falha.

Então vamos inserir em nosso código, algo parecido com essa estrutura abaixo:

if(mysqli_query($conexao, $query)) {
    // funcionou
} else {
    // nao deu certo
}

Vamos agora misturar HTML com PHP, e mostrar a mensagem de sucesso apenas se realmente deu sucesso:

    if(mysqli_query($conexao, $query)) {
    ?>
        <p class="alert-success">
            Produto: <?= $nome; ?>, preco: <?= $preco; ?> - adicionado com sucesso!
        </p>
    <?php
    } else {
    ?>
        <p class="alert-danger">
            ERRO - O produto não foi adicionado!
        </p>
    <?php
    }
    ?>

Utilizando o código acima, a nossa aplicação retorna um erro amigável caso a inserção falhe.

Tratamento de erro com PHP

Enfim, um detalhe curioso do PHP é que ele fecha a conexão do MySQL automaticamente. Ou seja, não precisamos colocar a linha mysqli_close().

Nesse caso, quando a última linha do seu script for executada, aí sim ele a fechará.

Resultado Final

Como nesse capitulo alteramos somente o arquivo adiciona-produto.php vou deixar o código dele abaixo para você estudar as alterações:

<?php include("cabecalho.php"); ?>

    <?php
    $nome = $_GET["nome"];
    $preco = $_GET["preco"];
    
    $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
    
    $conexao = mysqli_connect('localhost', 'root', '', 'loja');

    if(mysqli_query($conexao, $query)) {
    ?>
        <p class="alert-success">
            Produto: <?= $nome; ?>, preco: <?= $preco; ?> - adicionado com sucesso!
        </p>
    <?php
    } else {
    ?>
        <p class="alert-danger">
            ERRO - O produto não foi adicionado!
        </p>
    <?php
    }
    ?>

<?php include("rodape.php"); ?>

Conclusão

Em conclusão, neste artigo aprendemos com inserir registros dentro do banco de dados MySQL. Além de dar mais um passo para construção do nosso sistema.

Ou seja, aprendemos a utilizar as funções:

  • mysqli_connect – Para conectarmos no banco de dados.
  • mysqli_query – Para executar uma query no banco de dados.
  • mysqli_close – Para fechar a conexão com o banco de dados.

Além disso, vimos também como validar se o registro foi realmente incluído no MySQL utilizando a condição If/Else com a função mysqli_query, que retorna para nós o resultado true ou false.

Espero que este artigo tenha te ajudado a dar mais um passo em busca de seus objetivos. 😉

Gostou do conteúdo?
Comente aqui em baixo o que você achou desse artigo.

Clique no botão abaixo para acessar mais de 1400 cursos completos e com certificado válido. Invista em você e conquiste uma excelente carreira profissional na área da tecnologia.

ACESSAR CURSOS COM CERTIFICADO

Um forte abraço!

Tags: | |

Sobre o Autor

Programador Viking
Programador Viking

DICA EXTRA: Algumas pessoas estão me perguntando qual é o curso que recomendo para quem deseja aprender programação, mesmo sem ter qualquer conhecimento sobre o assunto. Minha recomendação, tanto para quem está iniciando, como para quem já possui mais experiência, é essa AQUI...

5 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.


  1. Código muito bom, mas estou com uma duvida. Toda vez que aperto F5 para atualizar a pagina, ele grava novamente os dados no BD. Como faço para não correr esse risco?

plugins premium WordPress