PDO からのエラー メッセージの抽出
PDO 例外からエラー メッセージを取得しようとすると、空の結果が表示されてイライラすることがあります。この質問は、根本的な問題を掘り下げ、この問題の解決策を提供します。
エラー モードを警告に設定しているにもかかわらず、PDO ステートメントとそのエラー情報は空の配列を返します。この問題は、setAttribute がステートメントの準備中ではなく、クエリ実行中の PDO の動作に影響を与えるという事実に起因します。
エミュレートされた準備済みステートメントの場合、prepare() 関数はデータベース サーバーと対話しないため、何も行われません。エラーチェック。ただし、MySQL バージョン 4.1 以降でサポートされているネイティブのプリペアド ステートメントを使用する場合、エラー モードを例外に設定すると、クエリの実行時に例外がトリガーされる必要があります。
これを実現するには、次のコードを使用します。
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
ネイティブのプリペアド ステートメントに切り替えてエラー モードを正しく設定すると、PDO 例外から有益なエラー メッセージを取得できるようになります。
以上がPDO エラー メッセージが空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。