如果出现致命错误,如无法连接到数据库,则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()如何防止这种情况?php.ini中的error_reporting已设置为0,而display_errors已设置为关闭。
发布于 2012-05-08 13:52:34
确保没有脚本在运行时或通过.htaccess启用display_errors。
如果仍然不起作用,请确保修改了正确的php.ini,并在进行任何更改后重新启动Apache/IIS/nginx。如果仍然失败,请加载一个phpinfo()并确保更改生效。
另外,一定要把html_errors也关掉。以防脚本偷偷经过更改了您的error_reporting,并向公众显示您的堆栈跟踪。
发布于 2012-05-08 13:54:38
可能是您编辑了错误的php.ini,也可能是设置在其他地方重新打开(.htaccess文件、用户级别的php.ini或在运行时在脚本中)。请参阅phpinfo()以帮助您查找、编辑php.ini文件,然后重新引导。
您只需关闭display_errors即可。
发布于 2012-05-08 13:54:31
您可以在引发错误的函数前使用"@“。
"@“将使你的函数可能产生的任何php错误保持沉默。
http://php.net/manual/en/language.operators.errorcontrol.php
https://stackoverflow.com/questions/10493234
复制相似问题