[TOC]
#### getLastSql()方法获取数据模型层的sql脚本
模型调试
在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句。例如:
~~~
$User = M("User"); // 实例化User对象
$User->find(1);
echo $User->getLastSql();
~~~
输出结果是
`SELECT * FROM think_user WHERE id = 1`
新版(thinkphp3.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或者日志文件。
#### fetchsql()方法获取数据模型层的查询脚本
~~~
M('user')->fetchsql(true)->where('user_id = %d', $v['user_id'])->find()
~~~