一般使用 getLastSql() 方法來查看剛執行過的SQL,但有時SQL語法錯誤,沒法使用 getLastSql() 方法。php
能夠在SQL執行前將它打印出來sql
拼裝出最後可執行SQL的位置在ui
ThinkPHP/Library/Think/Db/Driver.class.phpthis
public function buildSelectSql($options=array()) { if(isset($options['page'])) { // 根據頁數計算limit list($page,$listRows) = $options['page']; $page = $page>0 ? $page : 1; $listRows= $listRows>0 ? $listRows : (is_numeric($options['limit'])?$options['limit']:20); $offset = $listRows*($page-1); $options['limit'] = $offset.','.$listRows; } $sql = $this->parseSql($this->selectSql,$options); return $sql; }
能夠在return 前輸出 $sql 變量或寫入日誌。日誌