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.
Veja também: Os Melhores Cursos GRATUITOS Com Certificado
Confira neste artigo:
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.

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.

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“.

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.

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.


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.

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.

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.
Um forte abraço!




