我在 suse11.0 上使用 php 我的问题是,当我输入错误的语法或查询时,它不显示错误,仅在这种情况下显示空白页
谢谢
您可以配置error_reporting
(另请参阅),并启用错误显示(请参阅display_errors
或ini_set)——至少在您的开发机器上
在您的 php.ini 文件中,您将使用
error_reporting = E_ALL | E_STRICT
display_errors = On
html_errors = On
或者,在您的 PHP 代码中:
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');
您可能还想在您的开发盒上安装Xdebug ,以便在发生错误/异常时获得良好的堆栈跟踪
当然,在您的生产机器上,您可能不想显示错误;因此必须根据您的环境进行配置;-)
几乎可以肯定,display_errors
在 php.ini 中禁用了这种情况。
这在产品服务器上是一件好事,并且使开发系统基本上无法使用。
对于开发系统,您可能希望将这些行之一添加到您的 php.ini 文件中:
error_reporting = E_ALL & ~E_NOTICE
或者
error_reporting = E_ALL
使用以下内容创建一个文件,例如 test.php:
<?php
phpinfo();
?>
在浏览器中执行它并搜索 php.ini 文件所在的位置。比在 php.ini 中打开错误报告和显示错误。
确保在 php.ini 中打开了 error_reporting
error_reporting = E_ALL | E_STRICT
确保在您的 php.ini 文件中 display_errors 已打开并将 error_reporting 设置为 E_ALL。
开始你的脚本:
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL | E_STRICT);
?>
虽然其他答案确实回答了您的问题,但我只想指出,最好提供您自己的错误检查例程(或代码),以便您的脚本向用户显示令人愉快的错误消息。就像是
$result=@mysql_query($some_query);
if(!$result){
if($debugging==TRUE){
echo($some_query.'<br>'.mysql_error());//shows error in debugging mode
}
else{
log_error()// error logging function
die( 'there was a problem with your request the problem has been logged and we are working on it');//or something like that
}
}
//no error
more code