ThinkPHP3.0完全开发手册                                           

 

11.3.5          模型调试

在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句。例如:

$User M("User"); // 实例化User对象

$User->find(1);

echo $User->getLastSql();

输出结果是

SELECT * FROM think_user  WHERE id = 1

新版每个模型都使用独立的最后SQL记录,互不干扰,但是可以用空模型的getLastSql方法获取全局的最后SQL记录。

$User M("User"); // 实例化User模型

$Info M("Info"); // 实例化Info模型

$User->find(1);

$Info->find(2);

echo M()->getLastSql();

echo $User->getLastSql();

echo $Info->getLastSql();

 

输出结果是

SELECT * FROM think_info  WHERE id = 2

SELECT * FROM think_user  WHERE id = 1

SELECT * FROM think_info  WHERE id = 2

 

getLastSql方法只能获取最后执行的sql记录,如果需要了解更多的SQL日志,可以通过查看当前的页面Trace或者日志文件。

注意:Mongo数据库驱动由于接口的特殊性,不存在执行SQL的概念,因此SQL日志记录功能是额外封装实现的,所以出于性能考虑,只有在开启调试模式的时候才支持使用getLastSql方法获取最后执行的SQL记录。


NetPc