在thinkphp中,我們怎麼查看sql語句呢?首先得開啓調試模式,大多數在部署項目之前都要開啓調試模式的,在入口文件中設置define('APP_DEBUG',True);即可。
在模型操作中 ,爲了更好的查明錯誤,經常需要查看下最近使用的sql語句,我們可以用getLastsql(3.2可以使用簡化的_sql())
方法來輸出上次執行的sql語句。例如:
$Form = M('Form');
// 讀取數據
$data = $Form->find(1);
echo $Form->getLastSql();
//3.2版本中可以使用簡化的方法
echo $Form->_sql();
輸出結果是 SELECT * FROM think_form WHERE id = 1。我們要知道的是,每個模型都使用獨立的最後SQL記錄,互不干擾,但是可以用空模型的getLastSql方法獲取全局的最後SQL記錄。
$User = M("User"); // 實例化模型
$Form = M('Form');
$User->find(1);
$Form->find(2);
echo M()->getLastSql();//空模型
echo $User->getLastSql();
echo $Form->getLastSql();
輸出結果是:SELECT * FROM think_form WHERE id = 2
SELECT * FROM think_user WHERE id = 1
SELECT * FROM think_form WHERE id = 2
需要注意的是,getLastSql方法只能獲取最後執行的sql記錄,如果需要了解更多的SQL日誌,可以通過查看當前的頁面Trace或者日誌文件。