HTML错误、PHP错误、SQL错误和MySQL错误
基本问题:
PHP和MySQL版本问题:查看PHP和MySQL版本特性
web服务器或版本问题:查看web服务器特性
web浏览器或版本问题:使用不同的web浏览器运行页面
方法:
php.ini配置文件中display_errors为显示PHP错误的开关。
也可以使用ini_set()函数为当前脚本打开显示错误:ini_set('display_errors', 1);
注意:使用ini_set()函数后,如果脚本发生解析错误不会被显示
错误有三种级别:
错误报告等级:
等级值 | 符号常量 | 报告 |
---|---|---|
1 | E_ERROR | 致命错误(停止脚本执行) |
2 | E_WARNING | 运行错误警告 |
4 | E_PARSE | 解析错误 |
8 | E_NOTICE | 注意问题 |
256 | E_USER_ERROR | 用户生成的错误消息, 由trigger_error()生成 |
512 | E_USER_WARGING | 用户生成的警告,由trigger_error()生成 |
1024 | E_USER_NOTICE | 用户生成的注意,由trigger_error()生成 |
2048 | E_STRICT | 兼容性和互操作性的建议 |
8192 | E_DEPR ECATED | 警告无法在未来PHP版本中使用的代码 |
30719 | E_ALL | 所有的错误、警告和建议 |
调整脚本的错误报告行为:
error_reporting(number);
number是等级值,为0关闭所有报告,为E_ALL显示所有报告。对这些常量可以使用与或非运算符来进行搭配使用,如:E_ALL & E_STRICT可以显示不是注意的报告。
生成错误:triggererror(‘错误消息’, 等级值); 定义错误处理函数: 参数依次可选,分别是:错误等级值、错误消息、错误文件名、错误行数、错误存在的变量 将错误输出到文件中可以使用error_log()函数 常见PHP错误 调试方法: 用die()或exit()可以结束脚本执行。 常见SQL错误: 调试SQL查询问题: 调试访问问题:
等级值只能是表中的E_USER*
@运算符可以抑制单个错误, 如@(1/0), 对文件包含函数使用可以抑制包含文件中的错误报告。
自定义错误处理
function fun_name($num, $msg, $file, $line, $vars){
...
}
指定错误处理函数:
set_error_handler('fun_name');
php调试技术
错误
原因
空白页面
HTML问题或PHP错误,且关闭了display_errors或error_reporting
解析错误
忘记分号;不对称的{}、()、 [];字符串中使用了引号但没有转义
空变量值
忘记变量前的$;变量拼写错误或大小写错误;变量作用域不合适
调用未定义的变量
变量未赋值就使用;使用空变量值
声明函数
函数存在多个定义(检查文件包含)
头部已经发送
脚本中的PHP标签之前存在空白;已经打印数据;已经包含文件
SQL和MySQL调试技术
本文标签: PHP
暂无评论,赶紧发表一下你的看法吧。