简体   繁体   中英

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).

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 );

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM