[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()
~~~