ホームページ >バックエンド開発 >PHPチュートリアル >エラー モードを設定しているにもかかわらず、PDO エラー メッセージが空になるのはなぜですか?

エラー モードを設定しているにもかかわらず、PDO エラー メッセージが空になるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 20:45:14253ブラウズ

Why Are My PDO Error Messages Empty Despite Setting Error Modes?

PDO からのエラー メッセージの抽出: 不完全な応答のトラブルシューティング

PDO (PHP データ オブジェクト) を使用する場合、エラー メッセージを取得するのは困難な場合があります。この問題は、警告または例外を表示するようにエラー モードを設定しているにもかかわらず、予期したエラー情報を抽出できない場合に発生します。

ここで提供されている例では、コードはエラー モードを警告に設定しています。

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

しかし、PDOStatement および errorInfo() の print_r() ステートメントは空の出力を返します。これを解決するには:

  • ネイティブのプリペアド ステートメントを検証する: MySQL ドライバーはネイティブのプリペアド ステートメントをサポートしています。 MySQL のバージョンに互換性があることを確認してください (4.1 以降)。
  • エミュレートされた準備をオーバーライド: デフォルトでは、MySQL がサポートすることを報告した場合、PDO はエミュレートされた準備済みステートメントを使用します。問題が発生した場合は、ネイティブ ステートメントを使用するように PDO ドライバーを明示的に設定してみてください:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ATTR_PERSISTENT);
  • 例外処理への変更: PDO は、エラーが発生したときに例外をスローできます。警告を使用する代わりに、エラー モードを例外処理に設定してみてください。
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

この変更により、無効な SQL クエリが実行されたときに例外がトリガーされ、必要なエラー情報が提供されます。

以上がエラー モードを設定しているにもかかわらず、PDO エラー メッセージが空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。