sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo verificar si la inserción falla?

Eso depende.

La mayoría de las veces no desea saber si una inserción en particular falló. Sino más bien si su sitio está funcionando bien o no. Entonces, en general, su código debería ser solo

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

tanto else como catch son inútiles.

Sin embargo, a veces es posible que desee detectar un cierto error . En este caso usa catch. Aquí hay un código de mi artículo :

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

aquí puede detectar un cierto error y manejarlo.