ホームページ >バックエンド開発 >PHPチュートリアル >PDO クエリでエラー メッセージが表示されないのはなぜですか?
PDO リファレンス: 一般的なデータベース接続エラーの解決
概要
PDO (PHP データ オブジェクト) ) は堅牢なデータベース対話を提供しますが、その特定の機能が原因でユーザーはエラーに遭遇することがよくあります。この記事は、最も一般的な問題の 1 つである、PDO クエリ中にエラー メッセージを取得できないという問題に対処することを目的としています。
エラー メッセージなしのクエリ失敗
PDO クエリの実行時失敗しても、エラー メッセージがすぐには分からない場合があります。エラーの可視性を有効にするには、PDO エラー モードを PDO::ERRMODE_EXCEPTION に設定する必要があります。例外はスタック トレースを提供し、try..catch ブロックを使用して処理できます。
例:
$dsn = "mysql:host=$host;dbname=$db;charset=utf8"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]; $pdo = new PDO($dsn, $user, $pass, $opt);
エラーの表示
さらに、エラーを表示するにはエラー報告設定を構成する必要があります。ライブ サイトの場合は、エラー ログを有効にします。一方、ローカル開発の場合は、エラーが画面に表示されます:
ライブ サイト:
error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1);
ローカル開発:
error_reporting(E_ALL); ini_set('display_errors', 1);
エラーの回避抑制
PDO ステートメントの前にエラー抑制演算子 (@) を使用しないでください。
不必要な try..catch ブロックの回避
キャッチされない例外カスタム エラー処理を必要とせずに、貴重なエラー情報を提供します。 try..catch は、トランザクションのロールバックなど、エラーを処理する場合にのみ使用してください。
以上がPDO クエリでエラー メッセージが表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。