Patrick Figel: Unterschiede bei PDO::ERRMODE_EXCEPTION an oder aus, UNIQUE

Beitrag lesen

Das Arbeiten mit Ausnahmen erleichtert die Arbeit teilweise schon sehr. Ich würde deshalb bei PDO::ERRMODE_EXCEPTION bleiben.
Wenn du etwa den von dir genannten Fehler abfangen willst, verwende einfach einen Try-Catch-Block:

  
<?php  
[...]  
try {  
    //Deine Queries  
} catch(PDOException $e) {  
    if($e->getCode() == 23000) {  
        //Duplicate entry  
    }  
}  
[...]  
?>  

Mit set_exception_handler() kannst du eine globale Methode festlegen, die die Ausnahmen auffängt, die nicht durch ein catch gefangen werden.

Noch etwas: Wenn du schon PDO verwendest, kannst du auch gleich Prepared Statements verwenden. Schau dir dazu die Klasse PDOStatement, die Methode PDO::prepare(), etc. [1] an. Da sparst du dir dann auch Funktionen wie mysql_real_escape_string() bzw. PDO::quote().

[1] http://at2.php.net/manual/de/ref.pdo.php