Thinkphp是我们经常用使用的一个php的MVC框架。通常我们把业务分类,分层,在不同的层处理不同的业务逻辑。
本文要讲的是model层,关于获取上次执行的SQL语句的问题。(用于日志记录,或者分析出错原因等)。
1:model层的一般情况
通常,我们是通过集成系统Model类的方式来实现的。比如:class UserModel extends Model;(此文不多考虑命名空间的问题,即忽略3.1和3.2的差别)
更有甚至,有一个model的基类。class BaseModel extends Model,然后:class UserModel extends BaseModel,
当然,也有些初学者,或者业务逻辑简单的情况,直接在C层,M一个系统model类,然后处理业务逻辑。
本文不讨论没有M层的情况。
2:getLastSql函数
看过Thinkphp中Model类的人,都能发现这个函数,甚至还有,getLastInsID,getDbError,getError,getPk,getDbFields等函数。这些函数都是我们经常可能会用到的model层的函数。这里只说getLastSql函数。
此函数返回上次执行的SQL语句。
但是这句话不是太好理解的。
如果,我们使用,debug_backtrace,生成一条回溯跟踪线。经常会发现:
[Sweep] => SHOW COLUMNS FROM &