Publicidade   
 você está aqui: phpbrasil.com    artigos    artigo  
 
:: novos artigos ::

:: recomendado ::

PHP: Guia do Desenvolvedor

Compre esse livro no Submarino.com.br

:: publicidade ::


:: novos scripts ::

:: elenco phpbrasil ::

Max
Pontos: 2431

Visite a página de perfil de Henrique CastanonValidando dados de formulários diretamente no banco
por Henrique Castanon
Lista de Categorias  |  Contribua um Novo Artigo  |  Entre em Contato Conosco

Nesse artigo mostrarei uma opção simples para validação de dados provenientes de formulários. Essa validação será feita a partir das mensagens de erro que o banco de dados retorna.
Vote aqui!
Média de Votos Atual: 5.88
Total de Votos: 17
Nota:   

Normalmente temos um formulário HTML que chama um programinha (o exemplo está em PHP ) que faz a validação dos dados e, caso esteja tudo de acordo, faz a inclusão no banco de dados.

Com a função abaixo, podemos fazer essa validação utilizando o erro que o banco de dados retorna. Após, faremos a tradução do mesmo e exibiremos para o usuário.


<?php
function ExibirMensagemBanco($erro)

    if (
strchr($erro"invalid input syntax")) {
        
$varerro "Preencha os campos com o tipo de dado correto!";
    }
    if (
strchr($erro"invalid input syntax for type date")) {
        
$varerro "Preencha a data corretamente com '/'";
    }
    if (
strchr($erro"duplicate key violates")) {
        
$varerro "Violação da chave primária!";
    }
    if (
strchr($erro"value too long")) {
        
$varerro "Campo excedeu o tamanho limite!";
    }
    if (
strchr($erro"violates foreign key constraint")) {
        
$varerro "Violação de chave estrangeira";
    }
    if (!
$varerro) {
        
$varerro "Ocorreu um erro! Tente novamente!";
    }

    
// o conteúdo da variável $varerro fica a cargo 
    // do desenvolvedor. Cada um deve transmitir a 
    // mensagem da forma mais simples para o usuário
    
return $varerro;
}
?>


Podemos utilizar essa função da seguinte forma, usando a biblioteca ADODB nesse caso:


<?php
$conn 
= &ADONewConnection('mysql');
$conn->Connect("servidor""usuario""senha""basededados");

$query "INSERT INTO nometabela (campo1, campo2) VALUES ('$campo1', '$campo2')";
$exec $conn->Execute($query);
if (
$conn->ErrorMsg()) {
    echo 
ExibirMensagemBanco($conn->ErrorMsg());
} else {
    echo 
"incluiu com sucesso";
}
?>


Bom, essa é somente mais uma forma de validar dados.

Espero ter ajudado,
Henrique Castanon




<< Anterior 1 Próxima >>

 
Imprimir  |  Enviar para um Amigo


Comentários de Usuários

Me desculpe..
publicado por John Marques - 2007-08-23 06:51:06

Mais não foi validação do formulário e sim da inserção no banco.. acho q tinha que trocar esse nome ai..
intendi seu intuito.. mas acho que está incoerente..

:D

inserção
publicado por rogerioclaro - 2007-09-14 07:05:47

inserção no db mudar titulo

Vlw sera muito ultil

Que viagem isso
publicado por Anderson A. Meggiolaro - 2007-09-17 06:37:21


Desculpe, cara, mas você ta viajando na maionese. Abrir uma conexão com o banco apenas para validar um formuário (Aliás, isso não é validação de formulário)? Fala sério. No seu Localhost pode até funcionar bem, mas coloca isso em um servidor em produção, com uma base de singelos 10.000 usuários e tabelas com 1.000.000 de linhas. Adivinha o que vai acontecer? Não vou nem falar das mensagens de erro: "Violação de chave estrangeira"? Isso diz alguma coisa para um usuário leigo? Esse é um grande erro dos (nem todos, claro) programadores, achar que os usuários dos seus sistemas também são programadores. Desculpe se peguei pesado, mas realmente jamais esperava ler tal absurdo.

Re: Que viagem isso
publicado por Henrique Castanon - 2007-09-17 06:48:57

Prezado Anderson,
Bom Dia!
A intenção do artigo não é dizer o que é melhor ou não, mas apenas colocar mais uma forma! Espero que compreenda!
Abraços e obrigado pelo comentário.
Henrique.

=^|
publicado por cassiano aquino - 2007-09-30 14:30:22

A intenção foi boa apesar de não ser aplicavel na pratica
mas valleu o artigo, para termos outros pontos de vista

Pouca Funcionalidade!
publicado por fccd Esse usuário pertence aos 50 usuários mais ativos do site - 2008-01-10 11:04:42

Bom,
No meu ver um javascript para criticar isso seria melhor do que você fazer direto no banco, nunca vi ninguém usando esse metodo !!!

Sorry

Publique os seus Comentários

Nome:
Email:
Título:
Comentário:

NOTA: Cadastre-se no site para poder publicar comentários.

 
webmaster: João Prado Maia   © 2000 - 2005 phpbrasil.com
Gerado em 1.279 segundos