0

如果出现致命错误——比如无法连接到数据库,那么 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_reportinginphp.ini已设置为0关闭display_errors

4

3 回答 3

1

确保display_errors在运行时或通过.htaccess.

如果这仍然不起作用,请确保您正在修改正确的php.ini,并在进行任何更改后重新启动 Apache/IIS/nginx。如果仍然失败,请加载 aphpinfo()并确保正在进行更改。

另外,请务必html_errors关闭。以防万一脚本偷偷改变您的 error_reporting,并将您的堆栈跟踪显示给公众。

于 2012-05-08T05:52:34.333 回答
1

要么您编辑了错误的 php.ini,要么在其他地方重新打开了设置(.htaccess 文件、用户级别的 php.ini 或运行时的脚本中)。请参阅 phpinfo() 以帮助您找到 php.ini 文件,对其进行编辑,然后重新启动。

您只需要关闭 display_errors 即可。

于 2012-05-08T05:54:37.720 回答
-2

您可以在引发错误的函数之前使用“@”。

"@" 将静音您的函数可能引发的任何 php 错误。

http://php.net/manual/en/language.operators.errorcontrol.php

于 2012-05-08T05:54:30.603 回答