Intereting Posts
Почему мой запрос ajax получает ответ 0? Добавление нескольких абонентов к конференц-вызову от вызывающего абонента Twilio Размер и положение одного изображения в другом через PHP Как использовать php для генерации случайных XML-файлов? Как получить доступ к Tumblr API Photo Data Feed (т.е. все фотографии, весь архив)? Как загрузить phpseclib в codeigniter Как я могу получить постоянную магию PHP __FILE__ работать с Eclipse и PDT Подсчитайте данные в массиве, где дата одинакова и постройте диаграмму bar morrisjs Исправить PHP-метод для хранения специальных символов в MySQL DB WP отправляет почтовое уведомление новому пользователю, созданному программно Удалить данные из mysql и угловых как передать значение для цикла с одной страницы на следующую страницу в php? Недопустимый предел для Fuelphp ORM Значения привязки PDO для оператора MySQL IN Задание загрузки изображения в PHP. Работает локально, но ломается на реальном Linux-сервере

Регистрация MySQL Query в CakePHP

Я хотел знать, есть ли способ зарегистрировать запросы mysql в CakePHP, которые выполняются, когда мы используем метод find на моделях, я знаю, что запросы к базе данных rails, так что Cake делает то же самое, если да, то как я могу включить его или использовать Это?

Шив

Solutions Collecting From Web of "Регистрация MySQL Query в CakePHP"

Предполагая, что вы находитесь на nix os, наилучшим подходом было бы фактически связать сам журнал mysql.
Вы могли бы изучить некоторые интересные вещи из этого.

войти в Ubuntu при установке из репозитория

tail -f /var/log/mysql/mysql.log 

Как упоминалось ниже, это огромный убийца производительности (ну, все журналы имеют некоторое влияние на производительность). Поэтому убедитесь, что вы используете его только на своих машинах dev / QA и только на короткое время на вашей производственной машине.

Эта страница содержит инструкции о том, как заставить Cake регистрировать запросы так же, как и рельсы.

Очень простой способ регистрации всех выполняемых запросов:

в вашем торте \ libs \ model \ datasources \ dbo \ dbo_mysql.php

найдите функцию _execute :

 function _execute($sql) { return mysql_query($sql, $this->connection); } 

добавьте строку « $ this-> log ($ sql); « before » возвращает mysql_query ($ sql, $ this-> connection);

 function _execute($sql) { $this->log($sql); return mysql_query($sql, $this->connection); } 

Это оно!!!!! Все ваши SQL-запросы регистрируются. Убедитесь, что файл журнала настроен правильно и имеет достаточные разрешения. наслаждаться

CakePHP 1.3 использует для sql_dump элемент sql_dump .
Вы можете использовать элемент непосредственно, когда Configure::read('debug') установлен в 2:

 echo $this->element('sql_dump'); 

Или возьмите его код напрямую, если вам нужно сделать что-то еще с ним (например, эхо его из ShellTask)

 $sources = ConnectionManager::sourceList(); $logs = array(); foreach ($sources as $source): $db =& ConnectionManager::getDataSource($source); if (!$db->isInterfaceSupported('getLog')): continue; endif; $logs[$source] = $db->getLog(); endforeach; 

Эхо, например:

 print_r($logs) 

Это то, что я использую (поместите его в папку с элементами, а затем включите в свой макет)

 <?php ob_start(); echo $this->element('sql_dump'); $out = ob_get_contents(); ob_end_clean(); CakeLog::write('mysql' , $out); ?> 

то вы найдете файл mysql.log в TMP.logs.DS.mysql.log