Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP: Custom error handler for PDO?

I am attempting to try to do something useful with PDO exceptions other than display them, but I cannot find for the life of me how to use an error handler (set_error_handler) or anything custom to deal with PDOs exceptions.

Now I am using try..catch blocks of course the catch the exception, do I implement a custom error handler in the catch part, or can I skip the try->catch block completely as the exception handler would handle it for me (by calling or throw new exception (...) on the statement?

I guess what I am asking is an example to catch PDO exceptions and log them more or less (any simple code correct or not I can use, I'm not TOO dumb).

like image 357
John Avatar asked Oct 06 '10 17:10

John


1 Answers

You'll have to use a try..catch block around each PDO query. Add your log function in the catch part. There is no generic handler for exceptions in PHP.

try {  
   pdo::error();  
}  
catch (Exception $e) {  
   syslog($e);  
}  

If you want to avoid the try..catch blocks you can however configure PDO to only show errors instead of throwing exceptions. http://php.net/manual/en/pdo.error-handling.php

 $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
like image 64
mario Avatar answered Oct 10 '22 19:10

mario