Issue an ALERT for a UNIQUE field in Mysql

1

I have a field in the DB set to Unique, to avoid duplicate registration. It works perfectly. I would like to know if there is a way to customize this message with an Alert, for example.

My code:

<?php

require 'conexao.php';

$nome               =           addslashes ($_POST['nome']);
$foto1              =           addslashes ($_POST['foto1']);
$cpf                =           addslashes ($_POST['cpf']);
$rg                 =           addslashes ($_POST['rg']);
$email              =           addslashes ($_POST['email']);
$telefone           =           addslashes ($_POST['telefone']);
$endereco           =           addslashes ($_POST['endereco']);
$bairro             =           addslashes ($_POST['bairro']);
$cidade             =           addslashes ($_POST['cidade']);
$estado             =           addslashes ($_POST['estado']);
$observacoes        =           addslashes ($_POST['observacoes']);
$curso              =           addslashes ($_POST['curso']);

$sql = "INSERT INTO cursoest set nome = :nome, foto1 = :foto1, cpf = :cpf, rg = :rg, email = :email, telefone = :telefone, endereco = :endereco, bairro = :bairro, cidade = :cidade, estado = :estado, observacoes = :observacoes, curso = :curso";

$stmt = $PDO->prepare( $sql );
$stmt->bindParam( ':nome', $nome );
$stmt->bindParam( ':foto1', $foto1 );
$stmt->bindParam( ':cpf', $cpf );
$stmt->bindParam( ':rg', $rg );
$stmt->bindParam( ':email', $email );
$stmt->bindParam( ':telefone', $telefone );
$stmt->bindParam( ':endereco', $endereco );
$stmt->bindParam( ':bairro', $bairro );
$stmt->bindParam( ':cidade', $cidade );
$stmt->bindParam( ':estado', $estado );
$stmt->bindParam( ':observacoes', $observacoes );
$stmt->bindParam( ':curso', $curso );
$result = $stmt->execute();

if ( ! $result )
    {
var_dump( $stmt->errorInfo() );
exit;
    }
echo '<script type="text/javascript">alert("Matrícula realizada com sucesso!");</script>';
echo "<script>window.location = 'matriculaok.html';</script>";
//echo $stmt->rowCount() . "Matrícula realizada com sucesso!";

?>

As I researched, could I put a PDO:errorInfo ? How to do?

    
asked by anonymous 12.06.2017 / 21:10

1 answer

0

I solved it like this:

<?php

require 'conexao.php';

$nome               =           addslashes ($_POST['nome']);
$foto1              =           addslashes ($_POST['foto1']);
$cpf                =           addslashes ($_POST['cpf']);
$rg                 =           addslashes ($_POST['rg']);
$email              =           addslashes ($_POST['email']);
$telefone           =           addslashes ($_POST['telefone']);
$endereco           =           addslashes ($_POST['endereco']);
$bairro             =           addslashes ($_POST['bairro']);
$cidade             =           addslashes ($_POST['cidade']);
$estado             =           addslashes ($_POST['estado']);
$observacoes        =           addslashes ($_POST['observacoes']);
$curso              =           addslashes ($_POST['curso']);

$sql = "INSERT INTO cursoest set nome = :nome, foto1 = :foto1, cpf = :cpf, rg = :rg, email = :email, telefone = :telefone, endereco = :endereco, bairro = :bairro, cidade = :cidade, estado = :estado, observacoes = :observacoes, curso = :curso";

$stmt = $PDO->prepare( $sql );
$stmt->bindParam( ':nome', $nome );
$stmt->bindParam( ':foto1', $foto1 );
$stmt->bindParam( ':cpf', $cpf );
$stmt->bindParam( ':rg', $rg );
$stmt->bindParam( ':email', $email );
$stmt->bindParam( ':telefone', $telefone );
$stmt->bindParam( ':endereco', $endereco );
$stmt->bindParam( ':bairro', $bairro );
$stmt->bindParam( ':cidade', $cidade );
$stmt->bindParam( ':estado', $estado );
$stmt->bindParam( ':observacoes', $observacoes );
$stmt->bindParam( ':curso', $curso );
$result = $stmt->execute();

if ( ! $result )
    {
echo '<script type="text/javascript">alert("CPF já cadastrado em nosso Banco de Dados!");</script>';
echo '<script type="text/javascript">window.history.back(-1);</script>';
exit;
    }

echo '<script type="text/javascript">alert("Matrícula realizada com sucesso!");</script>';
echo "<script>window.location = 'matriculaok.html';</script>";
//echo $stmt->rowCount() . "Matrícula realizada com sucesso!";

?>
    
12.06.2017 / 21:44