web-dev-qa-db-ja.com

CodeIgniterでmysqlエラーが画面に表示されないようにする方法

Error_reportingが0に設定されていても、データベースエラーは引き続き画面に出力されます。データベースエラー報告を無効にするために変更できる設定はどこかにありますか?これはCodeIgniterv1.6.x用です

[〜#〜] edit [〜#〜]:Re:エラーの修正-ええと、はい。エラーを修正したい。訪問者が画面に印刷したものからではなく、エラーログからエラー通知を受け取ります。それは誰の助けにもならず、私のシステムのセキュリティを傷つけます。

EDIT 2:error_reportingを0に設定しても、CodeIgniterの組み込みエラーログクラスがエラーログに書き込むことには影響しません。

24
Ian Cook

答えが見つかりました:

config/database.php:

// ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.

そう:

$db['default']['db_debug'] = FALSE;

...無効にする必要があります。

65
Ian Cook

イアンの答えに加えて、エラーメッセージを一時的に無効にするには:

$db_debug = $this->db->db_debug;
$this->db->db_debug = false;

// Do your sketchy stuff here

$this->db->db_debug = $db_debug;
12
  • Error_reportingを0に変更しないでください。変更すると、エラーがログに記録されなくなります。

  • 代わりに、display_errorsを0に変更する必要があります

ただし、error_reportingが実際には0であると仮定すると、エラーが表示される理由は説明されていません。フレームワークがこれらのエラーを処理している可能性があります

6
Tom Haigh

アプリケーションディレクトリの下にある/errors/db_error.phpファイルを編集できます。これはDBエラー用に含まれているテンプレートです。

ただし、実際にはエラーを修正する必要があります。

3
Eli