Curso de PHP- Inserir dados em um banco de dados MySQL

Inserindo dados no Banco de Dados MySQL

Nesta lição vamos aprender a inserir dados (cadastrar) no banco de dados. Trata-se de uma operação extremamente comum e importante, e nós vamos inserir no banco dados provenientes de um formulário HTML.

Usando nosso banco de dados de exemplo das lições anteriores, vamos efetuar o cadastro de dados a partir dos valores inseridos no Formulário de Cadastro de Clientes, cujos dados serão inseridos na tabela cadastro do banco de dados banco_teste, que possui os campos NomeCliente, SobrenomeCliente e Sexo.

SHOW COLUMNS FROM cadastro - MySQL

Campos da tabela cadastro

Usaremos o comando SQL a seguir:

INSERT INTO cadastro (NomeCliente, SobrenomeCliente, Sexo) VALUES ‘$nome’, ‘$sobrenome’, ‘$sexo’; 

Onde $nome, $sobrenome e $sexo são os valores obtidos a partir do formulário de cadastro de nossa página de exemplo:

Formulário Cadastro - MySQL e PHP

A seguir temos o código da página que contém o formulário de cadastro de clientes, conforme exibida na figura anterior:

<!DOCTYPE html>
<html lang="pt-br">
<head>
  <meta charset="utf-8">
  <title> Testando conexão ao banco de dados </title>
</head>
<body>
  <h3>Formulário de Cadastro de Clientes</h3><br>
  <form name="Cadastro" action="cadastrar.php" method="POST">
    <label>Nome do Cliente: </label>
    <input type="text" name="NomeCliente" size="30"><br>
    <label>Sobrenome do Cliente: </label>
    <input type="text" name="SobrenomeCliente" size="45"><br>
    <label>Sexo do Cliente: </label>
    <select name="Sexo">
      <option value="M">Masculino</option>
      <option value="F">Feminino</option>
      <option value="N">Não Declarado</option>
    </select><br>
    <input type="submit" name="enviar" value="Enviar">
  </form>
</body>
</html>

Ao clicar no botão Enviar, os dados são enviados para processamento por um script PHP que batizaremos de cadastrar.php para execução do cadastro.

Vamos ao código exemplo do script cadastrar.php:

Código do script PHP

Crie um novo script de nome cadastrar.php e insira o código a seguir nele. Logo após salve-o:

<?php
$nome = $_POST['NomeCliente'];
$sobrenome = $_POST['SobrenomeCliente'];
$sexo = $_POST['Sexo'];
$strcon = mysqli_connect('localhost','fabio','123','banco_teste') or die('Erro ao conectar ao banco de dados');
$sql = "INSERT INTO cadastro VALUES ";
$sql .= "('$nome', '$sobrenome', '$sexo')"; 
mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");
mysqli_close($strcon);
echo "Cliente cadastrado com sucesso!";
echo "<a href='formulario.html'>Clique aqui para realizar um novo cadastro</a><br>";
echo "<a href='consulta.php'>Clique aqui para realizar uma consulta</a><br>";
?>

Nesse script nós:

  1. Capturamos os dados provenientes do formulário HTML por meio da variável $_POST
  2. Abrimos a conexão com o banco usando mysqli_connect()
  3. Criamos a declaração sql
  4. Executamos o comando sql no banco usando mysqli_query()
  5. Fechamos a conexão com mysqli_close()

Vamos incluir um registro no banco de dados a partir de nosso formulário. Veja o form da página preenchido a seguir:

Cadastrando cliente com PHP e MySQL

Após preencher o cadastro e clicar no botão enviar, os dados serão enviados do formulário para o script cadastra.php, e se não houver nenhum problema, serão gravados no banco de dados, e a seguinte mensagem será mostrada na página:

Cadastrar dados no MySQL via PHP

Excelente! Temos agora um script que pode ser utilizado para cadastrar dados em um banco de dados MySQL. Esse script pode ser bem refinado ainda, com a inclusão de testes de validação de campos, verificação de erros diversos de conexão e gravação no banco, e outras melhorias que vamos mostrar nos próximos tutoriais.

Usando arquivo externo de conexão ao banco de dados

Uma outra forma de criar o arquivo cadastrar.php é separando as informações de conexão ao banco de dados em um outro arquivo, e importando esses dados ao carregar a página de cadastro.

Veja o código a seguir:

<?php
include_once("conectar.php");
$nome = $_POST['NomeCliente'];
$sobrenome = $_POST['SobrenomeCliente'];
$sexo = $_POST['Sexo'];
if (!$strcon) {
 die('Não foi possível conectar ao Banco de Dados');
}
$sql = "INSERT INTO cadastro VALUES ";
$sql .= "('$nome', '$sobrenome', '$sexo')"; 
mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");
mysqli_close($strcon);
echo "Cliente cadastrado com sucesso!<br>";
echo "<a href='formulario.html'>Clique aqui para realizar um novo cadastro</a><br>";
echo "<a href='consulta.php'>Clique aqui para realizar uma consulta</a><br>";
?>

Neste caso, utilizamos a função include_once logo no início do script para inserir automaticamente o conteúdo do arquivo conectar.php na página de cadastro, quando ela for carregada. O arquivo conectar.php contém os dados para conexão ao banco de dados e criação da string d conexão utilizada. Veja se código a seguir:

<?php
/* Dados do Banco de Dados a conectar */
$Servidor = 'localhost';
$nomeBanco = 'banco_teste';
$Usuario = 'fabio';
$Senha = '123';
$strcon = mysqli_connect($Servidor, $Usuario, $Senha, $nomeBanco); 
?>

Também realizamos uma modificação no arquivo cadastrar.php, trocando a linha que cria a string de conexão:

$strcon = mysqli_connect(‘localhost’,’fabio’,’123′,’banco_teste’) or die(‘Erro ao conectar ao banco de dados’);

por um teste condicional para verificar se ela foi criada a partir da importação do arquivo conecta.php:

if (!$strcon) {
die(‘Não foi possível conectar ao Banco de Dados’);
}

É isso aí! Agora devemos aprender a realizar consultas no banco de dados, a fim de verificar os dados que foram gravados e obter informações específicas armazenadas no MySQL.

Esse é o assunto de nossa próxima lição.

Sobre Fábio dos Reis (1223 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

15 Comentários em Curso de PHP- Inserir dados em um banco de dados MySQL

  1. Carlos Brito // 28/12/2016 em 11:28 // Responder

    Amigo, ótima aula, consegui gravar no DB, a minha duvida agora é como transferir para o meu projeto, essa conexão.
    o ocorre na hora de gravar as linhas nº25,26,27,28 & 29.
    você poderia me ajudar ?

    conectar();

    //Metodo de Cadastro
    if($startaction == 1){
    if($acao == “cadastrar”){
    $nome = $_POST[“nome”];
    $end = $_POST[“end”];
    $cpf = $_POST[“cpf”];
    $senha = $_POST[“senha”];
    $senha1 = $_POST[“senha1″];

    if(empty($nome)||empty($end)||empty($cpf)||empty($senha)||empty($senha1)){
    $msg=”Preencha todos os campos!”;
    }
    //Todos os campos preenchidos
    else{
    //Códigos Válidos
    //Senha invalida
    if(strlen($senha)<8){
    $msg="A senha deve ter no mínimo oito caracteres!";
    }else{
    //Executa a classe de cadastro
    $conectar=new Cadastro;
    echo"”;
    $conectar=$conectar->cadastrar($nome, $end, $cpf, $senha, $senha1);
    echo””;
    }
    }
    //Código inválido
    }
    }

    ?>

  2. Matheus de Ávila Lins Teixeira // 02/01/2017 em 19:51 // Responder

    Parse error: syntax error, unexpected ‘,’ in C:\wamp64\www\banco_de_dados\cadastrar.php on line 14

    Quando eu executo o código aparece o erro acima

  3. Matheus de Ávila Lins Teixeira // 03/01/2017 em 1:19 // Responder

    cara estou aprendendo php e mysql para desenvolver um site para mim, estou pegando carona nesse seu código de inserir em um banco de dados mas está apresentando os erros abaixo:
    1)Notice: Undefined variable: mysqli_query in C:\wamp64\www\banco_de_dados\cadastrar.php on line 11
    2)Fatal error: Function name must be a string in C:\wamp64\www\banco_de_dados\cadastrar.php on line 11

  4. Ao concluir tentei cadastrar mas apresenta a msg definida no código: “Erro ao tentar cadastrar registro”

  5. Adaptei o codigo fornecido para meu ambiente (abaixo) mas quando submito nao retorna nenhum erro e tambem nao grava no banco.

    Customers

  6. Desculpe! mas, não sei onde esta a tabela.

    att

  7. Achei!!! Obrigado

  8. gilliard // 29/05/2017 em 9:20 // Responder

    não esta casdastrando

  9. cicero nillo // 31/05/2017 em 21:16 // Responder

    ei cara meu codico php esta aparecendo na pagina e eu segui seu paso a paso ao pe da letra tipo so copiei e colei, o meu wamp esta ok e todo o resto tambem

  10. Jonas Alves // 26/12/2017 em 6:10 // Responder

    Excelente trabalho.
    Estou com problemas para gravar os dados de 2 caixas de seleção(a dentro do ). O banco aceita epas um ou outro, mas não os 2 ao mesmo tempo. O que d ser?? Grato a quem pd ajudar.

  11. Parabéns, ótima explicação rapaz 🙂

Escreva um comentário

Seu e-mail não será divulgado


*