Validando dados de formulários diretamente no banco
por Henrique Castanon

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.



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