hawkmaster: Unterschiede bei PDO::ERRMODE_EXCEPTION an oder aus, UNIQUE

Beitrag lesen

Hallo zusammen,
ich versuche mal testweise einen Insert in eine MySQL Tabelle mit PDO.
(Es wurden noch keine Daten validiert bzw. maskiert)

$d_name = $_POST['depname'];
$result = $DBO->query("SELECT dep_name FROM departments") or warning($DBO);
while ($row = $result->fetch()){
 if (strtoupper($d_name) != strtoupper($row['dep_name'])){
 $DBO->exec("INSERT INTO infostream_departments (dep_name) VALUES ('$d_name')");
...

Wenn nun;
$DBO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
aktiviert erscheint die unten stehende Fehlermeldung wenn es einen Eintrag schon gibt.

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Marketing' for key 2' in

Die Spalte "dep_name" ist auf "UNIQUE! gesetzt damit es keine doppelten Einträge gibt.

wenn ich die Option;
$DBO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
deaktiviere klappt alles, es gibt KEINE doppelten Einträge und es kommt keine Fehlermeldung.

Mit mysql_query() gab es auch keine Fehlermeldungen.

Mit ist klar das ich eine Prüfung auf doppelte Einträge anders abfangen muss.
Eigentlich kann man es ja schon mit "UNIQUE" verhindern.
Was ist die saubere Lösung?
PDO::ERRMODE_EXCEPTION immer aktivieren und mögliche Fehler vorher abfangen?

vielen Dank und viele Grüße
hawk