PHP レポート SQL エラーを無効にするにはどうすればよいですか?
P粉550257856
2023-09-05 17:14:24
<p><code>mysqli_error($this->conn)</code></p> を使用して MySQL エラーを txt ファイルに記録する独自の PHP データ クラスがあります。
<p>PHP エラー処理を E_ALL に設定するまでは、すべてが正常に動作していました。これで、PHP がエラーをインターセプトし、MySQL エラー ハンドラーによって処理される機会がなくなりました。 </p>
<p>これは、PHP がエラーの完全な SQL 文字列をログに記録しなかったことを除けば、問題にはなりません。最初の 20 文字程度とその後に「...」が記録されるだけで、デバッグにはあまり役に立ちません。 </p>
<p>そこで私の質問は、PHP エラーを処理しながら MySQL エラーを無視するように PHP に指示することは可能でしょうか? </p>
<p>さまざまなレベルの error_reporting() を調べましたが、特に MySQL エラーが残るものはないようです。 </p>
これは、mysqli エラー報告を無効にすることで実行できますが、通常のプロジェクトではこれを行うべきではありません。実際のところ、あなたはこの問題に間違った方法で取り組んでいるように見えます。エラー報告を無効にするのではなく、エラーを修正する必要があります。
前述のとおり、エラーが動的 SQL ステートメントの間違った構成に起因する場合は、エラーを設計の一部に含めたくないため、この考えられるシナリオを処理するロジックをコードに含めるべきではありません。他のエラーと同様、これは PHP コードのバグです。それが MySQL エラーとして現れるという事実は無関係です。無効な SQL ステートメントを構築するコードを修正する必要があります。 エラーを沈黙させてもエラーは解決されません。
PHP コードが定数 SQL 部分から SQL を構築すると仮定すると (変数を使用している場合、コードに大きな問題が発生します)、どのコード パスが SQL キーワードの組み合わせが正しくない原因となっているかを判断することになります。 。これは SQL エラーから部分的に推測できます。例外メッセージにより、構文エラーが何であるかがわかります。 MySQL エラーが構文の破損に関連していない場合でも、プロセスは同様であり、エラーの原因を見つけて修正します。
SQL コードの周囲に特別なエラー処理ロジックを記述しないでください。それは混乱を招くし、絶対に必要ありません。