2012-03-15 5 views
0

Привет, есть ли возможность кэшировать все выполненные запросы на сайте? без какого-либо класса, который будет выполнять и записывать его в массив?Есть ли возможность поймать все выполненные запросы

Мне нужно написать сценарий, который покажет мне все выполненные запросы в нижней части моей страницы. Теперь я использую Kohana и его простоту, потому что есть класс профилировщика, который показывает это, но что с простым mysql_query?

+1

У функций mysql_ * нет собственного способа сделать это ... – Ing

ответ

0

Некрасивый, но простой и эффективный способ сделать это:

function mysql_query_log ($query, $conn = NULL) { 
    if (!isset($GLOBALS['__QueryLog'])) $GLOBALS['__QueryLog'] = array(); 
    $GLOBALS['__QueryLog'][] = $query; 
    return mysql_query($query, $conn); 
} 

Изменить все ваши призывы mysql_query() к mysql_query_log(), и глобальным переменной $__QueryLog представляет собой массив всех запросов, которые были выполнены так далеко.

Причина, по которой я называю это «уродливым» методом, заключается в том, что функция изменяет переменные за пределами своей собственной области действия, что является плохой практикой и ее следует избегать. Но для простоты этого нельзя бить.

Смежные вопросы