2012-06-28 29 views
2

在笨,我會做:如何顯示所有查詢數據庫Yii框架

print_r ($this->db->queries); 

Yii中我嘗試:

print_r (Yii::app()->db) 

但是,這並不表明任何疑問。

更新: 我理解我的問題:當我想在POST動作中顯示db查詢時,我不顯示它。當使用GET時,沒關係。

+1

http://www.yiiframework.com/forum/index.php/topic/11403-knowing-last-query/ –

+0

我用這種方式 - 沒有。 – yAnTar

+1

您是否也使用過CWebLogRoute? –

回答

4

作爲@ bool.dev說,你可以使用CWebLogRoute或在我的情況下我使用CFileLogRoute將這些查詢存儲在文件中。

  array(
       'class'=>'CFileLogRoute', 
       'categories'=>'system.db.*', 
       'logFile'=>'sql.log', 
      ), 
+0

對我來說CWebLogRoute更好。 謝謝。 – yAnTar

0

爲了補充@ snippLeaf-COM的回答,您可以跟蹤通過關鍵字此文件過濾你想是這樣的:

// filter by "INSERT" or "UPDATE" 
$ tail -f /path_to/protected/runtime/sql.log |grep 'INSERT\|UPDATE' 

// filter (case insensitive) by "SELECT" in table "x2_users" 
$ tail -f /path_to/protected/runtime/sql.log |grep -i SELECT.*x2_users 

OBS:獲取新的數據,你可能需要刷新數據庫緩存:

rm -f protected/runtime/cache/*.bin