すべての例外をキャッチしてログに保存するカスタム エラー ハンドラを定義しました。現在、mysqli クエリに入力ミスなどの構文エラーがあると、その時点でページの読み込みが完全に停止します。例外はスローされないため、エラー ハンドラーはトリガーされず、何も記録されません。
これは正常ですか?mysqli クエリ エラーが例外をスローするように、これを修正するためにチェックする必要がある PHP 設定はありますか?
(クエリが 0 の結果を返した場合に例外をスローしたくない - クエリ構造のタイプミスまたはその他のエラーが原因でエラーが発生した場合のみ)
クエリの例:
if($result=$db->query('SELECT bad_field_reference FROM table')){while($r=$result->fetch_assoc()){$data[]=$r;}}$result->free();
PHPMyAdmin でこのクエリを実行しようとすると、列 bad_field_reference が存在しないことがわかります。PHP スクリプトの一部として実行しようとすると、その時点でページ全体の読み込みが停止します。
明確にするために、ページのソースを見てテストを行っただけです。ページの残りの部分は読み込まれるようですが、Java が有効になっていると特定のアイテムが非表示になるため、jquery を使用して一部のコンテンツをアニメーションで再表示します。これらの jquery スクリプトは実行されていないため、ページの読み込みが停止したように見えます。
では、2 つの質問があります。PHP でエラーを「キャッチ」するにはどうすればよいでしょうか。また、jquery でスクリプトを実行するにはどうすればよいでしょうか。