如果存在致命错误 - 比如无法连接到数据库,则PHP会在浏览器中打印错误堆栈,如下所示 -
mysql_pconnect() [<a href='function.mysql-pconnect'>function.mysql-pconnect</a>]: Lost connection to MySQL server at 'reading initial communication packet', system error: 111
#0 /var/www/platform/db/connection.php:12 mysql_pconnect('127.0.0.1','root','password')
#1 /var/www/platform/db/front_page.php:10 open_db_connection()
#2 /var/www/platform/services/front_page_services.php:7 find_top_courses()
#3 /var/www/platform/inc/main.php:75 get_top_courses()
#4 /var/www/index.php:198 F3::run()
如何防止这种情况? error_reporting
中的php.ini
已设为0
且display_errors
为关闭。
答案 0 :(得分:1)
确保没有脚本在运行时或通过display_errors
启用.htaccess
。
如果仍然无效,请确保修改了正确的php.ini
,并在进行任何更改后重新启动Apache / IIS / nginx。如果仍然失败,请加载phpinfo()
并确保更改正在进行。
另外,请务必关闭html_errors
。以防脚本偷偷摸摸改变你的error_reporting,并向公众显示你的堆栈跟踪。
答案 1 :(得分:1)
要么你正在编辑错误的php.ini,要么在其他地方(.htaccess文件,用户级别php.ini或运行时的脚本中)返回设置。请参阅phpinfo()以帮助您找到php.ini文件,编辑它,然后重新启动。
你只需要关闭display_errors。
答案 2 :(得分:-2)
您可以在引发错误的函数之前使用“@”。
“@”将使您的函数可能引发的任何php错误无声。
http://php.net/manual/en/language.operators.errorcontrol.php