hawkmaster: Try & Catch sauberer Stil oder zu aufwändig?

Beitrag lesen

Hallo deldfix,
nochmals 1000 Dank für deine Hilfe und das du soagr soweit hinten nachschaust :-)

Woraus schließt du, dass die while-Schleife fertig ist? Auf welche Zeile bezieht sich denn die Fehlermeldung? Ist das Problem immer noch da, wenn du es mal nachbaust und dabei alles entfernst oder weglässt, das nicht unbedingt nötig ist?>>

Wenn ich dieses Stück Code ausführe:
--------------------------------------------
$result = $DBO->query("SELECT dep_name FROM departments") or warning($DBO);
while ($row = $result->fetch()){
if (strtoupper($d_name) != strtoupper($row['dep_name'])){
try {
$DBO->exec("INSERT INTO departments (dep_name) VALUES ('$d_name')");
$DepartmentsID = $DBO->lastInsertId();
} catch(PDOException $e) {
print "Error / FEHLER!: " . $e->getMessage() . "<br/>";
}
}else{
$department_check = "same";
}
}//while

die();
--------------------------------------------
Und ich habe 8 Zeilen in der Tabelle, dann ist die Ausgabe wie folgt:
Error / FEHLER!: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2
Error / FEHLER!: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2
Error / FEHLER!: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2
Error / FEHLER!: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2
Error / FEHLER!: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2
Error / FEHLER!: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2
Error / FEHLER!: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Systemsupport' for key 2' in C:\Programme\dbo\include\newuser.php:100 Stack trace: #0 C:\Programme\dbo\include\newuser.php(100): PDOStatement->fetch() #1 {main} thrown in C:\Programme\dbo\include\newuser.php on line 100

Die Zeile 100 bezieht sich dann auf;
while ($row = $result->fetch()){

Dieser letzte Fatal Error ist mir eigentlich nicht klar.

vielen Dank und viele Grüße
hawk