1、在项目配置文件里面打开调试模式DEBUG_MODE,这样能够让你发现大部分的错误原因 。 |
//1.确定应用名称 App |
define( 'APP_NAME' , 'Home' ); |
//2.确定应用路径 |
define( 'APP_PATH' , './Home/' ); |
//3.开启调试模式 |
define( 'APP_DEBUG' ,true); |
2、如果不想使用调试模式,可以单独开启页面Trace显示。发现很多人不想使用调试模式的原因居然是因为有页面Trace信息的输出,其实这里面有一个误区,以为调试模式就一定会有页面Trace,但其实调试模式和页面Trace没有必然的关系,只是因为打开调试模式后,系统默认的调试配置文件会开启页面Trace显示,所以你完全可以给项目单独定义调试配置文件。 |
'SHOW_PAGE_TRACE' => 'true' , |
3、使用系统定义的dump函数,该方法同var_dump可以输出任何类型的变量信息,而且更加有利于在浏览器里面查看,例如: |
查看代码打印 |
1 |
$User =D( "User" ); |
2 |
$list = $User ->findAll(); |
3 |
dump( $list ); |
4、页面Trace信息只能显示当前页面执行的sql语句,但无法查看ajax方式执行的后台操作里面的sql语句,所以你还可以开启sql日志记录SQL_DEBUG_LOG来记录每一条执行的sql语句,并且可以查看到每条sql语句的执行时间 sql日志文件位于Logs目录下面,会自动按日期来区分每天的sql日志。 |
5、另外一个是在执行某个数据操作后怀疑sql执行有错误的话,可以使用模型类的getLastSql方法来查看上次执行的sql语句,以便分析具体的错误原因。例如: |
查看代码打印 |
1 |
$User =D( "User" ); |
2 |
$User ->id=3; |
3 |
$User ->name= 'ThinkPHp' ; |
4 |
$User ->save(); |
5 |
echo $User ->getLastSql(); |
6 |
//输出结果将为:update think_user set name='ThinkPHP' where id=3; |
6、当需要调试某段代码的运行时间的时候,可以使用系统提供的debug_start( $label )和debug_end( $label )方法,例如: |
查看代码打印 |
1 |
debug_start( 'demo' ); |
2 |
//这里是你的代码段.......debug_end('demo'); |