PDO: Can I Configure Default Error Handling to Throw Exceptions?
In order to enhance PDO's error handling, you express the desire to have exceptions thrown by default instead of manually setting the error mode.
As per your code example, you currently use the setAttribute() method to specify PDO::ERRMODE_EXCEPTION for each connection. While this approach works for specific instances, you seek a global configuration that applies to all PDO connections.
Unfortunately, there is no configuration option in php.ini or elsewhere to set the default error mode for PDO. You must explicitly set it using setAttribute() for each connection you create.
To address this inconvenience, you could create a custom wrapper class or library that sets the error mode during construction. Here's an example:
class Db { public function __construct() { $this->pdo = new PDO('...', '...', '...', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]); } // Other database operations... }
By utilizing this wrapper, you can simplify your code and ensure that all PDO connections throw exceptions:
try { $db = new Db(); // Queries and operations } catch (PDOException $e) { // Error handling }
While this approach introduces an additional dependency, it provides a convenient solution for enforcing default exception throwing for PDO.
The above is the detailed content of Can PDO\'s Default Error Handling Be Configured to Throw Exceptions?. For more information, please follow other related articles on the PHP Chinese website!