2012-06-28 2 views
2

В CodeIgniter я хотел бы сделать:Как показывает все запросы к базе данных в фреймворке

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

В Yii я попробовал:

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

Но это не показывает какие-либо запросов.

UPDATE: Я понимаю свою проблему: когда я хочу показать запросы db в действии POST, я не показываю его. При использовании 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 
Смежные вопросы