PDO: 例外をスローするようにデフォルトのエラー処理を構成できますか?
PDO のエラー処理を強化するには、エラーモードを手動で設定する代わりに、デフォルトで例外がスローされます。
コードごとにたとえば、現在 setAttribute() メソッドを使用して、接続ごとに PDO::ERRMODE_EXCEPTION を指定しています。このアプローチは特定のインスタンスに機能しますが、すべての PDO 接続に適用されるグローバル構成を求めます。
残念ながら、php.ini またはその他の場所には、PDO のデフォルトのエラー モードを設定するための構成オプションはありません。作成する接続ごとに setAttribute() を使用して明示的に設定する必要があります。
この不便さに対処するには、構築中にエラー モードを設定するカスタム ラッパー クラスまたはライブラリを作成できます。以下に例を示します:
class Db { public function __construct() { $this->pdo = new PDO('...', '...', '...', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]); } // Other database operations... }
このラッパーを利用すると、コードを簡素化し、すべての PDO 接続が例外をスローするようにできます:
try { $db = new Db(); // Queries and operations } catch (PDOException $e) { // Error handling }
このアプローチでは追加の依存関係が導入されますが、 PDO のデフォルトの例外スローを強制するための便利なソリューションを提供します。
以上がPDO のデフォルトのエラー処理は例外をスローするように構成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。