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.
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:
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:
- Capturamos os dados provenientes do formulário HTML por meio da variável $_POST
- Abrimos a conexão com o banco usando mysqli_connect()
- Criamos a declaração sql
- Executamos o comando sql no banco usando mysqli_query()
- 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:
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:
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.
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
}
}
?>
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
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
Ao concluir tentei cadastrar mas apresenta a msg definida no código: “Erro ao tentar cadastrar registro”
Olá!
Verifique se o nome da tabela e banco de dados estão corretos!
Olá, poderia me ajudar em uma coisa?
Falta definir o valor do ID
Coloque como (‘defalt’,’nome’
Adaptei o codigo fornecido para meu ambiente (abaixo) mas quando submito nao retorna nenhum erro e tambem nao grava no banco.
Customers
Desculpe! mas, não sei onde esta a tabela.
att
Achei!!! Obrigado
não esta casdastrando
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
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.
Parabéns, ótima explicação rapaz 🙂
Obrigado!