Curso de PHP – Conectando a um Banco de Dados MySQL

Conexão a um Banco de Dados MySQL com PHP

Nesta lição vamos mostrar os procedimentos necessários para realizar a conexão do script PHP a um banco de dados MySQL, e executaremos uma inserção de dados para testar a conexão criada.

Vamos usar dois documentos: uma página HTML contendo um formulário de cadastro de clientes, e um documento PHP contendo as rotinas para tratamento dos dados recebidos da página do formulário.

Na caixa a seguir temos o código usado para a criação da página com o formulário de cadastro. Vamos batizá-la de inicial.html:

<!DOCTYPE html>
<html lang="pt-br">
<head>
<title> Testando conexão ao banco de dados </title>
<meta charset="utf-8">
</head>
<body>
 <h3>Formulário de Cadastro de Clientes</h3><br>
 <form name="Cadastro" action="processa.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>

E logo abaixo uma visualização do formulário criado:

Formulário HTML para banco de dados e PHP

Vamos precisar também de um banco de dados criado no MySQL para nossos testes. Vamos criar um banco de nome banco_teste, e um usuário de nome fabio, que será utilizado para efetuar a conexão ao banco criado. Também iremos dar permissão total a esse usuário sobre o banco de dados. Para tal, conecte-se ao MySQL pelo prompt de comandos (ou terminal, se estiver no Linux), e execute a sequência de comandos a seguir:

CREATE DATABASE banco_teste;
USE banco_teste;
CREATE TABLE Cadastro (NomeCliente VARCHAR (20), SobrenomeCliente VARCHAR (30), SEXO CHAR(1));
CREATE USER fabio@localhost;
GRANT ALL ON banco_teste.* TO fabio@localhost;
SET PASSWORD FOR 'fabio'@'localhost' = PASSWORD('123');

Dados necessários para a criação do script de processamento em PHP:

  • IP ou hostname do servidor MySQL;
  • Nome do Banco de Dados a acessar;
  • Nome de usuário do banco de dados;
  • Senha do usuário.

Vejamos agora como efetuar a conexão ao banco de dados criado. Para isso crie um novo documento PHP, que salvaremos com o nome de processa.php, e então siga os procedimentos a seguir para criar o código deste arquivo.

Efetuando conexão ao banco de dados

Passo 1: Primeiramente criaremos uma string de conexão com a função mysqli_connect() no arquivo processa.php

Função msqli_connect(): Permite abrir uma conexão a um banco de dados MySQL, de acordo com os dados fornecidos.

Sintaxe:

mysqli_connect('servidor', 'usuário', 'senha', 'banco');

Essa função retorna uma string de conexão, que deve ser armazenada em uma variável para uso posterior, quando formos executar as declarações SQL no banco de dados. Vejamos um exemplo. Vamos criar a string de conexão e armazená-la em uma variável de nome $strcon, usando os dados a seguir:

  • Hostname do servidor MySQL: localhost
  • Nome do Banco de Dados a acessar: banco_teste
  • Nome de usuário do banco de dados: fabio
  • Senha do usuário: 123

Código:

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

Após executar essa instrução, a variável $strcon deve conter os dados necessários para conexão ao banco de dados. Usamos a função die() que será executada caso haja algum erro durante a execução de mysqli_connect(), exibindo a mensagem “Não foi possível conectar ao MySQL” como aviso.

Veja como ficará o código no arquivo processa.php para a realização de nosso primeiro teste, que é a conexão ao banco de dados criado:

<?php
  $nome = $_POST['NomeCliente'];
  $sobrenome = $_POST['SobrenomeCliente'];
  $sexo = $_POST['Sexo'];
  $strcon = mysqli_connect('localhost','fabio','123','banco_teste');
  if (!$strcon) {
    die('Não foi possível conectar ao MySQL');
  }
  echo 'Conexão realizada com sucesso!';
  mysqli_close($strcon);
?>

Após criar os documentos (formulário e arquivo processa.php), teste-os abrindo o formulário em um navegador, preenchendo os dados e clicando no botão “Enviar” Se a conexão tiver êxito, você verá a mensagem “Conexão realizada com sucesso” na página. Vamos agora modificar o código para que possamos inserir dados no banco de dados criado.

Passo 2: Vamos criar a declaração SQL que será executada no servidor, e armazená-la em uma variável. Como exemplo, vou inserir um registro novo na tabela Cadastro do banco de dados (que contém as colunas NomeCliente, SobrenomeCliente e Sexo ), a partir de informações coletadas dos campos nome, sobrenome e sexo de um formulário, armazenando a declaração SQL na variável $sql (o nome pode ser diferente, fica a seu critério):

$sql = "INSERT INTO Cadastro(NomeCliente, SobrenomeCliente, Sexo) VALUES ('$nome','$sobrenome','$sexo')";

As variáveis $nome, $sobrenome e $sexo contém os dados enviados com o uso do array $_POST.

Passo 3: Executar a declaração SQL no banco de dados. Para isso vamos utilizar a função mysqli_query().

Função mysqli_query(): Executa uma declaração SQL no banco de dados.

Sintaxe:

mysqli_query(string_conexão,código_SQL,modo_resultado)
  • string_conexão é a string de conexão que foi gerada anteriormente com a função mysqli_connect()
  • código_SQL é a declaração SQL armazenada na variável $sql criada
  • modo_resultado pode ser:
    • MYSQLI_USE_RESULT (Caso precisemos retornar uma quantidade enorme de dados)
    • MYSQLI_STORE_RESULT (Modo padrão)

modo_resultado é opcional.

Exemplo: Vamos agora executar a inserção dos dados coletados do formulário no banco de dados efetivamente:

$resultado = mysqli_query($strcon,$sql) or die('Erro ao executar a inserção de dados');

A variável $resultado armazenará o resultado da execução da declaração, que pode ser (para o INSERT): TRUE, FALSE ou Failure, dependendo do êxito ou não do processo. É opcional, caso não seja necessário retornar nenhuma informação.

Passo 4: Encerrar a conexão ao banco de dados. Para isso utilize a função msqli_close():

Função mysqli_close(): Fecha uma conexão a um banco de dados aberta previamente.

Sintaxe:

mysqli_close(string_conexão);
  • string_conexão é a string criada com a função mysqli_connect() no início do procedimento.

Exemplo: Fechando a conexão usada durante a inserção do registro no banco de dados:

mysqli_close($strcon);

O código completo do script alterado para inserção de dados no banco de dados pode ser visto no box abaixo:

<?php
 $nome = $_POST['NomeCliente'];
 $sobrenome = $_POST['SobrenomeCliente'];
 $sexo = $_POST['Sexo'];
 $strcon = mysqli_connect('localhost','fabio','123','banco_teste');
 if (!$strcon) {
   die('Não foi possível conectar ao MySQL');
 }
 // Criando a declaração SQL:
 $sql = "INSERT INTO Cadastro(NomeCLiente, SobrenomeCLiente, Sexo)
 VALUES ('$nome','$sobrenome','$sexo')";
 // Executando a declaração no banco de dados:
 $resultado = mysqli_query($strcon,$sql) or die("Erro ao executar a inserção dos dados");
 echo "Registro inserido com sucesso";
 mysqli_close($strcon);
 echo "<br><br><a href='inicial.html'>Voltar à página inicial</a>";
?>

Após a conexão ter sido fechada, o processo está finalizado e o novo registro do inserido no banco de dados com êxito. Efetue uma consulta ao banco de dados (pelo terminal ou usando o phpMyAdmin), usando a declaração SELECT * FROM Cadastro, para constatar que o registro foi incluído com sucesso. Veja o resultado da execução do script após o cadastro do registro “Fabio dos Reis” usando o formulário criado:

Resultado da Consulta ao MySQL com PHP

Função die()

Essa função é executada caso haja algum problema na execução das funções mostradas anteriormente, exibindo uma mensagem de erro, e finalizando o script PHP naquele ponto. Passe como parâmetro para esta função a mensagem a ser exibida.

É isso aí! Na próxima lição vamos aprender a realizar consultas no banco de dados. Até!

 

Sobre Fábio dos Reis (1195 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.

5 Comentários em Curso de PHP – Conectando a um Banco de Dados MySQL

  1. Opa. Assistir quase todos os seus vídeos de C# incluindo o que faz operações aritméticas e até agora tinha dado tudo certo. O motivo do meu contato e que não sei como depois de somado os dados eu quero exibi-los em datagridview . Aguardo retorno

  2. paolo c s santos // 29/10/2016 em 15:25 // Responder

    fábio qual possibilidade de desenvolver um peq aplicativo em arduino com o mysql?

  3. Max Pessôa // 19/02/2020 em 13:51 // Responder

    Boa Tarde!
    Gostei muito do seu método de ensino.
    De forma simples, clara e objetiva.
    Parabéns!

  4. Olá. Há um trecho em que voce digita “msqli_connect()” ao invés de “mysqli_connect()” (faltou um “y”). Mas é só isso. Bom dia.

Escreva um comentário

Seu e-mail não será divulgado


*