ini_set中的display_errors不起作用

时间:2012-03-08 09:42:33

标签: php

我遇到了ini_set('display_errors','off')的问题。

为了快速给你一个贯穿期,我在同一个文件夹中有两个文件:

1)“php.ini”,其中设置了“display_errors = on”。 2)“iniTest.php”,其代码如下:

ini_set('display_errors', 'off');

$conn = mysql_connect('localhost','excamplehidden','examplehidden') or trigger_error("SQL", E_USER_ERROR);
$db = mysql_select_db('examplehidden',$conn) or trigger_error("SQL", E_USER_ERROR);

mysql_query("SELECT * FROM `FakeTable`") OR die(mysql_error());

ini_set('display_errors', 'on');

当我在浏览器中运行此页面时,我仍然得到:

“表'examplehidden.FakeTable'不存在”

我期望什么都得不到,因为我想隐藏错误。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

该错误来自您的die命令。您无法通过关闭错误来取消die,因为您在退出前明确地将mysql_error回显到屏幕。

您应该使用trigger_error与上面mysql_select_db行相同的方式来解决此问题:

mysql_query("SELECT * FROM `FakeTable`") OR trigger_error(mysql_error(), E_USER_ERROR);