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.