Inclusão de dados em banco Mysql com PHP | Zoom Digital : Reviews de Smartphones, Tutoriais, Notícias

Inclusão de dados em banco Mysql com PHP

Por Philipe Cardoso
Categoria: Banco de Dados
jul 24th, 2009
6 Comments
2960 Views

Codigo PHP

Saudações, amigos do Zoom Digital.

Hoje vou passar um pequeno tutorial de como efetuar inserção de dados numa base de dados MYSQL. Crie uma base de dados com a seguinte instrução MYSQL:

CREATE TABLE `fgts_convoca` (
  `id` int(11) NOT NULL auto_increment,
  `nome` text collate latin1_general_ci NOT NULL,
  `funcao` text collate latin1_general_ci NOT NULL,
  `email` text collate latin1_general_ci NOT NULL,
  `ip` text collate latin1_general_ci NOT NULL,
  `dataaabertura` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

A seguir elabore uma página HTML chamada ‘index.php’ que contenha um formulário com os campos NOME, FUNÇÃO e E-MAIL. Direcione o action desse formulário para uma página chamada ‘processa.php’.

Agora iniciaremos nosso script de inserção propriamente dito.

//Configuro os dados para conexão ao BD
$tabela = "Sua tabela";
$endereco = "Endereço da BD";
$usuario = "Usuario";
$senha = "Senha";

//Estabelece Conexão com a Base de Dados
mysql_connect($endereço, $usuario, $senha);
mysql_select_db($tabela);

Este é o começo do código. Iniciamos com a configuração de acesso a sua base de dados. Basta preencher os valores das variaveis $tabela, $endereco, $usuario e $senha de acordo com as configurações de acesso ao seu Banco de dados MYSQL.

function protecao($string){
  $string = str_replace(" or ", "", $string);
  $string = str_replace("select ", "", $string);
  $string = str_replace("delete ", "", $string);
  $string = str_replace("create ", "", $string);
  $string = str_replace("drop ", "", $string);
  $string = str_replace("update ", "", $string);
  $string = str_replace("drop table", "", $string);
  $string = str_replace("show table", "", $string);
  $string = str_replace("applet", "", $string);
  $string = str_replace("object", "", $string);
  $string = str_replace("'", "", $string);
  $string = str_replace("#", "", $string);
  $string = str_replace("=", "", $string);
  $string = str_replace("--", "", $string);
  $string = str_replace("-", "", $string);
  $string = str_replace(";", "", $string);
  $string = str_replace("*", "", $string);
  $string = strip_tags($string);

  return $string;
}

A seguir você deve declarar está função, cuja finalidade é proteger os dados contra inserção de informações maliciosas. Esta função poderá ser chamada em qualquer trecho deste código após esta declaração.

//Recebo as variaveis
$nome = trim($_POST['nome']);
$nome = addslashes($nome);
$nome = protecao($nome);
$funcao = trim($_POST['funcao']);
$funcao = addslashes($funcao);
$funcao = protecao($funcao);
$email = trim($_POST['email']);
$email = addslashes($email);
$email = protecao($email);

Neste trecho recebemos as informações provenientes do formulário e fazemos uma verificação com nossa função ‘protecao’. Também utilizamos a função TRIM para limpar espaços em branco e ADDSLASHES para adicionar barras invertidas as informações. Tomando esses cuidados as chances de inserirem informações maliciosas sem permissão são quase nulas.

//Seleciono o IP
$ip = $_SERVER['REMOTE_ADDR'];

//Gero a data e hora de cadastro
$dataabertura = date("Y-m-d H:i:s");

Agora selecionamos algumas informações de controle opcionais. O IP da pessoa que está inserindo as informações e a data e hora da inserção.

$sql = mysql_query("INSERT INTO $tabela (nome, funcao, email, dataabertura, ip) VALUES ('".$nome."', '".$funcao."', '".$email."', '".$dataabertura."', '".$ip."')");

Neste trecho realizamos a inserção de dados propriamente dita utilizando a instrução INSERT INTO. Você pode obter mais informações sobre manipulação de dados no manual de referência MYSQL (http://dev.mysql.com/doc/refman/4.1/pt/insert.html).

if(!$sql){
    echo "Erro na Inserção: ".mysql_error();
}else{
    print ""; //Retorna Alerta de sucesso no processo
    print ""; //Aqui indico a página do formulário para o script retornar a ela
}

Aqui fazemos uma verificação de condição. Se houver falha na inserção, todo o processo é interrompido e é exibida na tela uma mensagem de erro informando por que a inserção falhou. Caso contrário, retornamos um alert avisando do sucesso no processo e redirecionamos o usuário para a página do formulário.

Pronto. Agora vocês sabem o básico de inserção de dados com PHP. Não sou o melhor professor do mundo, mas espero que vocês consigam tirar algum proveito dessas informações.

Nós vemos em breve.
Que a Força esteja com vocês.

About "" Has 2042 Posts

23 anos, Carioca, Criador do Portal Zoom Digital, mantém desde a epoca que possuia formato de blog, Podcaster oficial do Zoom Cast. Amante por todo tipo de tecnologia e formado como técnico de informática.

6 Responses to “Inclusão de dados em banco Mysql com PHP”

  1. Uma função bacana para usar contra Injeção SQL

    function AntInjection($fields){
    return trim(strip_tags(addslashes($fields)));
    }

    dai é so chamar a função
    $nome = AntInjection($_POST[‘nome’])

    ou jogar o $_POST em um foreach e dentro dele chamar a função para tratar todos os valores do array

  2. Para combater Sql Injection eu uso a seguinte função:

    function AntiInjection($Param){
    $Param = strip_tags($Param); // Retira tags HTML
    $Param = addslashes($Param); // Acrescenta barra invertida (“\”) caso insira aspas simples (“‘”) escapando o caracter
    $Param = mysql_escape_string($Param); //Retira todas as tags mysql, como por exemplo, SELECT, DROP TABLE, ALTER TABLE, e assim vai.
    $Param = strtolower($Param); // Deixa os caracteres em caixa baixa.
    return $Param;
    }

    Belo tutorial, sempre é bom pegar ip como você fez no registro para ter um controle melhor sobre o sistema.

    Parabéns

  3. Cassio Santos disse:

    Muito bom, gostei de ter notícias sobre PHP no Zoom Digital.

  4. Andre Silva disse:

    Boas funções as de vocês, Rafael e Alexandre.

    Existem dezenas de funções para proteção contra SQL Injection. Temos sempre que ficar atentos a proteção de nossos projetos.

    E breve teremos mais dicas de PHP.

  5. ARTHUR disse:

    Boa noite amigo, gostaria de saber se vc da aula de php, mas preciso aprender já fazendo um projeto que tenho aqui em mente.

Deixe uma resposta

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