如何在 CodeIgniter 中关闭 mysql 错误显示在屏幕上

How to turn off mysql errors from being displayed to screen in CodeIgniter

提问人: 提问时间:11/14/2008 最后编辑:Pathik Vejani 更新时间:10/13/2016 访问量:33680

问:

即使error_reporting设置为 0,数据库错误仍会打印到屏幕上。是否有可以更改的设置以禁用数据库错误报告?这是针对 CodeIgniter v1.6.x 的

编辑:回复:修复错误 - 嗯,是的。我想修复错误。我从错误日志中收到错误通知,而不是从我的访问者看到打印到屏幕上的内容中收到错误通知。这对任何人都没有帮助,而且会损害我的系统安全性。

编辑 2:将 error_reporting 设置为 0 不会影响 CodeIgniter 的内置错误日志记录类写入错误日志。

php mysql codeigniter 错误报告

评论


答:

6赞 Tom Haigh 11/14/2008 #1
  • 你不想改变 error_reporting 到 0,因为那样会 还可以抑制错误 登录。

  • 相反,你应该改变 display_errors 到 0

这并不能解释你为什么会这样 显示错误, 假设error_reporting实际上是 0. 也许框架会处理这些错误

3赞 Eli 11/14/2008 #2

您可以编辑应用程序目录下的 /errors/db_error.php 文件 - 这是数据库错误包含的模板。

但是,您真的应该修复错误。

65赞 Ian Cook 11/14/2008 #3

找到答案:

config/database.php:

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

所以:

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

...应禁用。

评论

5赞 John Magnolia 8/30/2015
我懒惰健忘,所以这样做$db['default']['db_debug'] = (ENVIRONMENT == 'developement') ? TRUE : FALSE;
1赞 Draex_ 5/31/2018
$db['default']['db_debug'] = ENVIRONMENT == 'developement';
12赞 NaturalBornCamper 3/8/2013 #4

除了 Ian 的回答之外,要暂时禁用错误消息:

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

// Do your sketchy stuff here

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