我遇到了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'不存在”
我期望什么都得不到,因为我想隐藏错误。
我做错了什么?
答案 0 :(得分:4)
该错误来自您的die
命令。您无法通过关闭错误来取消die
,因为您在退出前明确地将mysql_error
回显到屏幕。
您应该使用trigger_error
与上面mysql_select_db
行相同的方式来解决此问题:
mysql_query("SELECT * FROM `FakeTable`") OR trigger_error(mysql_error(), E_USER_ERROR);