- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Реально ли отловить вызов PHP функции?
То есть, у меня есть несколько файлов которые обращаются к БД MySQL.
Мне нужно отловить все изменения БД. А еще лучше все запросы к ней.
Я предполагаю, что если можно отловить вызов mysql_query() - тогда я бы мог и получить запрос, который выполняется.
Переопределять функции в PHP нельзя.
Может быть у кого-нибудь есть исходник модуля PHP с функциями? тогда можно было бы доработать функцию mysql_query - и это был бы самый лучший вариант.
Кто-нибудь может быть знает еще варианты, как отловить все изменения вы БД?
Возможность обернуть функцию в функцию-оболочку отсутствует?
1. включите лог всех запросов в базе, увидите полную картину.
2. http://php.net/manual/en/function.override-function.php - но придется установить дополнительный модуль для пхп.
Переопределять функции в PHP нельзя.
http://www.php.net/manual/en/function.runkit-function-redefine.php
Stek, я правильно Вас понял:
<?php
override_function('mysql_query', '$query', 'echo $query;');
?>
но мне все таки нужно выполнить запрос к БД. А кода функции mysql_query у меня нет(
Так думаю не прокатит:
<?php
override_function('mysql_query', '$query', 'echo $query; return mysql_query($query)');
?>
<?php
override_function('mysql_query', '$query', 'echo $query; return mysql_query($query)');
?>
В теории должно прокатить, так как на момент вызова mysql_query в третьем параметре она еще не была переопределена.
Toy, а на счет обертки функции Вы это и имели ввиду?
Xakez добавил 10.06.2011 в 12:53
1. включите лог всех запросов в базе, увидите полную картину.
2. http://php.net/manual/en/function.override-function.php - но придется установить дополнительный модуль для пхп.
подскажите, какой модуль.. никак найти не могу(
Я имел ввиду что-нибудь типо такого.
И пользоваться функцией с новым именем.
Xakez, если для работы с MySQL использовать не стандартные средства рнр, а классы наподобие котеровского DBSimple, то решение Вашей проблемы готово - класс сам делает логи запросов, а Вы уже решаете как и куда их сохранять. Это и есть обертка, о которой пишет Toy, только более навороченная.