sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kontrollerer man, om indsættelse mislykkes?

Det kommer an på.

Oftest ønsker du ikke at vide, om en bestemt indsats mislykkedes. Men snarere om dit websted fungerer godt eller ej. Så generelt burde din kode være lige

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

med både andet og fangst er ubrugelig.

Men nogle gange vil du måske fange en bestemt fejl . Brug i dette tilfælde catch. Her er en kode fra min artikel :

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

her kan du fange en bestemt fejl og håndtere den.



  1. Vil du migrere eksisterende auth.Brugerdata til den nye Django 1.5 brugermodel?

  2. Sådan vælger du mysql-rækker i rækkefølgen af ​​IN-klausulen

  3. PL/pgSQL kontrollerer om der findes en række

  4. Laravel 4.2 BIT datatype problem