Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment vérifier si l'insertion échoue ?

Ça dépend.

La plupart du temps, vous ne voulez pas savoir si une insertion particulière a échoué. Mais plutôt si votre site fonctionne bien ou non. Donc, en général, votre code devrait être juste

$stmt = $db_con->prepare(" INSERT INTO mytable ( col ) VALUES ( ? ) ");
$stmt->execute( array('anything') );
echo 'successful';

avec à la fois else et catch inutiles.

Cependant, vous voudrez peut-être parfois intercepter une certaine erreur . Dans ce cas, utilisez catch. Voici un code de mon article :

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;
    }
}

ici, vous pouvez détecter une certaine erreur et la gérer.