Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como verificar se a inserção falha?


Depende.

Na maioria das vezes você não quer saber se uma determinada inserção falhou. Mas sim se o seu site está funcionando bem ou não. Então, em geral, seu código deve ser apenas
$stmt = $db_con->prepare(" INSERT INTO mytable ( col ) VALUES ( ? ) ");
$stmt->execute( array('anything') );
echo 'successful';

com tanto else quanto catch sendo inúteis.

No entanto, às vezes você pode querer detectar um certo erro . Neste caso, use catch. Aqui está um código do meu artigo :
try {
    $pdo->prepare("INSERT INTO users VALUES (NULL,?,?,?,?)")->execute($data);
} catch (PDOException $e) {
    if ($e->getCode() == 1062) {
        // Take some action if there is a key constraint violation, i.e. duplicate name
    } else {
        throw $e;
    }
}

aqui você pode pegar um certo erro e tratá-lo.