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

Come verificare se l'inserimento non riesce?

Dipende.

La maggior parte delle volte non vuoi sapere se un particolare inserto ha fallito. Ma piuttosto se il tuo sito funziona bene o no. Quindi in generale il tuo codice dovrebbe essere solo

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

con entrambi gli altri e scopri di essere inutile.

Tuttavia, a volte potresti voler rilevare un certo errore . In questo caso usa catch. Ecco un codice dal mio articolo :

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

qui potresti rilevare un certo errore e gestirlo.