PDO SQL ステートメントを実行すると、明確なエラー メッセージが表示されずに予期しないエラーが発生することがあります。これらのサイレント エラーの背後にある理由を理解することは、それらを効果的に解決するために非常に重要です。
まず、エラーを報告するように PDO を構成することが重要です。 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) を設定するか、このパラメーターを接続オプションとして追加すると、データベース エラーが PDO 例外に変換され、詳細なエラー メッセージが表示されます。
次に、 SQL 変数のプレースホルダー (?) を含むプリペアド ステートメントを使用すると、クエリが構文的に正しいことが保証されます。 PHP 変数をプレースホルダーに置き換えると、潜在的な構文エラーが排除されます。
PDO クエリの失敗は、次の 4 つのカテゴリに分類されます:
PHP エラーを表示するには、error_reporting(E_ALL) を設定してエラー報告がオンになっていることを確認し、開発サーバーの場合は、ini_set('display_errors',1)。ライブ サイトの場合は、エラーを表示するのではなくログに記録するように ini_set('log_errors', 1) を設定します。
PDO 例外は、エラー レポートの十分なメカニズムです。この目的で try-catch 構造を使用すると、不必要に複雑になるため、避ける必要があります。
以上がPDO ステートメントがサイレントに失敗するのはなぜですか? PDO ステートメントをデバッグするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。