Ahora que estamos en el año 2015, hay muy pocas razones para no usar de PHP DOP implementación.
El método "OO" adecuado y moderno para detectar y manejar una falla de inserción debido a una violación de restricción clave es el siguiente:
try {
//PDO query execution goes here.
}
catch (\PDOException $e) {
if ($e->errorInfo[1] == 1062) {
//The INSERT query failed due to a key constraint violation.
}
}
La PDOException el objeto tiene mucho mucho también hay más que decir sobre la naturaleza específica del error (más detalles de los que uno podría desear o necesitar, aparentemente).