使用ThinkPHP应该掌握的调试手段
经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身自带的调试方式不说,如果你正在用或者打算用ThinkPHP开发的话,那么下面一些和调试相关的方法你是应该要了解和掌握的: 
1、在项目配置文件里面打开调试模式DEBUG_MODE,这样能够让你发现大部分的错误原因 。可能影响验证码的输出。
2、如果不想使用调试模式,可以单独开启页面Trace显示。发现很多人不想使用调试模式的原因居然是因为有页面Trace信息的输出,其实这里面有一个误区,以为调试模式就一定会有页面Trace,但其实调试模式和页面Trace没有必然的关系,只是因为打开调试模式后,系统默认的调试配置文件会开启页面Trace显示,所以你完全可以给项目单独定义调试配置文件。 
3、使用系统定义的dump函数,该方法同var_dump可以输出任何类型的变量信息,而且更加有利于在浏览器里面查看,例如:

$User = D("User");
$list = $User->findAll();
dump($list);

4、页面Trace信息只能显示当前页面执行的sql语句,但无法查看ajax方式执行的后台操作里面的sql语句,所以你还可以开启sql日志记录SQL_DEBUG_LOG 来记录每一条执行的sql语句,并且可以查看到每条sql语句的执行时间 sql日志文件位于Logs目录下面,会自动按日期来区分每天的sql日志。 
5、另外一个是在执行某个数据操作后怀疑sql执行有错误的话,可以使用模型类的getLastSql方法来查看上次执行的sql语句,以便分析具体的错误原因。例如:

$User = D("User");
$User->id = 3;
$User->name = 'ThinkPHp';
$User->save();
echo $User->getLastSql();
// 输出 update think_user set name='ThinkPHP' where id=3;

6、当需要调试某段代码的运行时间的时候,可以使用系统提供的debug_start($label)和debug_end($label)方法,例如:

debug_start('demo');
// 这里是你的代码段.......
debug_end('demo');

最新文章

  1. 【ueditor】api方法
  2. MQTT 消息 发布 订阅
  3. 深夜重温JavaScript中的对象和数组
  4. C++学习注意点
  5. Linux WebServer WebRoot Path Identification
  6. Yii 框架ajax搜索分页
  7. TypeScript学习笔记(二):基本数据类型及数据转换
  8. 方格取数(1)(HDU 1565状压dp)
  9. index of rmvb mp3 rm突破站点入口下载
  10. 百度前端技术学院Html&CSS学习资源
  11. Java基础知识整理(一)
  12. Orleans的集群构建
  13. Win3内存管理之私有内存跟共享内存的申请与释放
  14. java的poi 读取exc 文件
  15. [P2402] 奶牛隐藏
  16. android开发分辨率适配总结
  17. PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法
  18. 分布式Redis主备复制
  19. MyEclipse生成Javadoc帮助文档
  20. Numpy库解析

热门文章

  1. linux常用操作记录
  2. vue v-model 的注意点
  3. 长久不用的mysql报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  4. * format-- set command window output display format
  5. CF2B The least round way
  6. Thinkphp 批量更新方法 saveALL
  7. [codeVS3943] 数学奇才琪露诺
  8. 这篇讲angular 的$q的讲得不错
  9. struts2前端页面读取Clob/BLOB
  10. j2se回想