Как переименовать mysql_query и посматреть стек в пхп

Тема в разделе "PHP", создана пользователем n42, 29 июн 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. n42

    n42

    Регистр.:
    8 фев 2008
    Сообщения:
    206
    Симпатии:
    25
    Я хочу получить лог вызовов mysql_query.

    первый вариант

    переименовать все
    mysql_query -> my_mysql_query

    и в файле dbconf.php добавить
    PHP:
    function my_mysql_query($q){
     
    log($q);
     
    log_stack();
     
    mysql_query($q);
     
    log(mysql_error());
    }
    Но мне не хочеться периновыфвать все вызовы так как это затронет несколько сотен файлов и и очень много вызовов.

    Мне хочетьсчя сделать как то так

    dbconf.php

    PHP:
    $real_mysql_query mysql_query;

    function 
    my_mysql_query($q){
     
    log($q);
     
    log_stack();
     
    $real_mysql_query($q);
     
    log(mysql_error());
    }

    mysql_query my_mysql_query;
    2. Как реализовать функцию log_stack(); что бы посматреть стек вызовов.

    ЗЫ Вариант перекомпиляции ПХП я не расматриваю, я ищу более простое решение, что бы не модифицировать все файлы. Многие файл ни кто не трогал годами.

    Может вы знаете другое простое решение даной задачи.
     
  2. zizop

    zizop Прохожие

    1. В файле my.cnf прописать строчку: log=/path/to/log/file.log
    2. Создать файл, выставить права
    3. Перезапустить демон
     
  3. n42

    n42

    Регистр.:
    8 фев 2008
    Сообщения:
    206
    Симпатии:
    25
    Это тот же файл, что используеться для репликации?
    Мне нужно знать где вызываються запросы.

    В даном варианте нет файла и функции сделала этот запрос.

    А мне важно точно, знать где что вызывают,

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

    Дело в том, что есть опасения, что к нужным таблицам обращаються, а я не заметил где. И будет задница если всё переписать.
     
  4. Aldekein

    Aldekein Создатель

    Регистр.:
    26 дек 2007
    Сообщения:
    14
    Симпатии:
    8
    http://ua.php.net/manual/ru/function.runkit-function-rename.php

     
    n42 нравится это.
  5. n42

    n42

    Регистр.:
    8 фев 2008
    Сообщения:
    206
    Симпатии:
    25
    Я искал вот эту функцию.

    debug_backtrace()

    Она показует стек.
     
Статус темы:
Закрыта.