使用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');

thinkphp调试手段的更多相关文章

  1. 解析使用ThinkPHP应该掌握的调试手段

    解析使用ThinkPHP应该掌握的调试手段     使用ThinkPHP应该掌握的调试手段经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉 ...

  2. PCI 设备调试手段

    Author: Younix Platform: RK3399 OS: Android 6.0 Kernel: 4.4 Version: v2017.04 一PCI 设备调试手段 busybox ls ...

  3. shell 调试手段总结

    对于厌烦了的 print 和 echo,可以尝试点新鲜省力的小手段. 1. 使用 shell 的执行选项 sh 和 bash 常用的执行指令有:-n.-x.-c.-v. 其中: -n 是 noexec ...

  4. ThinkPHP调试模式与日志记录

    1.可以在config.php中进行设置,默认为关闭状态. 'APP_DEBUG'   =>  true 打开\ThinkPHP\Common\debug.php文件可以查看debug的默认设置 ...

  5. thinkphp 调试模式

    ThinkPHP有专门为开发过程而设置的调试模式,开启调试模式后,会牺牲一定的执行效率,但带来的方便和除错功能非常值得. 直线电机哪家好直线电机生产厂家 我们强烈建议ThinkPHP开发人员在开发阶段 ...

  6. Android 中调试手段 打印函数调用栈信息

    下面来简单介绍下 android 中的一种调试方法. 在 android 的 app 开发与调试中,经常需要用到打 Log 的方式来查看函数调用点. 这里介绍一种方法来打印当前栈中的函数调用关系 St ...

  7. 程序调试手段之gdb, vxworks shell

    调试一个程序主要用到的功能: 启动程序 设置函数断点 设置数据断点 单步执行 查看内存值 修改内存值 linux下的gdb,和vxworks下的shell 虽然使用方式和调试命令略有不同,但是都能满足 ...

  8. thinkphp调试技巧

    调试的经验:很多时候程序调试不出来,但是又找不出错误,往往是拼写错误可能是很小的拼写错误,很难看出,或者多了一个空格,比如在配置路由的时候'URL_ROUTER_ON '=true,这样设置就会错误, ...

  9. tensorflow tfdbg 调试手段

    https://blog.csdn.net/gubenpeiyuan/article/details/82710163 TensorFlow 调试程序 tfdbg 是 TensorFlow 的专用调试 ...

随机推荐

  1. webpack之webpack-dev-server 与 webpack-hot-server

    最近在弄框架,用到了webpack打包,当然不可避免的遇到了开发实际问题.在实际开发中,我们不可能改一个文件,就去构建一次,于是想到了实时更新.查看webpack,看到了webpack-dev-ser ...

  2. session对象的使用

    session对象的使用 制作人:全心全意 session在网络中被称为会话.由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器 ...

  3. 爬虫-----HTML解析

    对HTML的解析: 在解析复杂的HTML的页面时,需要避免一些问题,好让爬虫工作变得得心应手. • 寻找“打印此页”的链接,或者看看网站有没有HTML样式更友好的移动版(把自己 的请求头设置成处于移动 ...

  4. 全面了解cookie和session

    http协议: http即超文本传输协议(万维网定义的),一种基于浏览器请求与服务器响应的链接,它是一个很纯粹的传输协议.http协议主要的特征就是它是一种无状态的协议(只针对cookie与sessi ...

  5. Vue2.0如何自定义时间过滤器

    我们知道Vue2.0开始不再支持自带的过滤器,需要我们自己去自定义过滤器,方法如下:           我们可以自己定义一个时间过滤器,在此引用了一个日期处理类库(Moment.js)可以很快的实现 ...

  6. java 使用OpenOffice文件实现预览

    1.安装OpenOffice软件 安装教程:https://jingyan.baidu.com/article/c275f6ba12c07ce33d756732.html 2.安装完成后,创建项目,p ...

  7. BZOJ 1834 Luogu P2604 [ZJOI2010]网络扩容 (最小费用最大流)

    题目连接: (luogu) https://www.luogu.org/problemnew/show/P2604 (bzoj) https://www.lydsy.com/JudgeOnline/p ...

  8. 在Eclipse中设置Maven插件

    [步骤] Maven插件的设置: ①installations:指定Maven核心程序的位置.不建议使用Maven插件自带的Maven程序,而应该使用我们自己解压的那个. ②user settings ...

  9. 【18】AngularJS 包含

    AngularJS 包含 在 AngularJS 中,你可以在 HTML 中包含 HTML 文件. 在 HTML 中包含 HTML 文件 在 HTML 中,目前还不支持包含 HTML 文件的功能. 服 ...

  10. android安卓程序源码---高仿微信源码

    先截几张图: 部份源代码如下所示: package cn.buaa.myweixin; import java.util.ArrayList; import android.os.Bundle; im ...