Возможный дубликат:
Как распечатать точный sql-запрос в zend framework?
В профилировщике zend я могу либо распечатать запрос с вопросительными маркерами (getQuery), либо распечатать массив параметров (getQueryParams).
Есть ли способ заменить все вопросительные маркеры и распечатать реальный запрос sql?
Благодаря!
Что-то вроде этого должно работать:
$profile = $this->getQueryProfile($queryId); $query = $profile->getQuery(); $params = $profile->getQueryParams(); foreach ($params as $par) { $query = preg_replace('/\\?/', "'" . $par . "'", $query, 1); }
Структура использует подготовленные операторы, так что на самом деле это реальный запрос – на самом деле его отправка в базу данных, которая анализирует ее, а затем параметры привязываются к ней и выполняются.
Вы можете использовать __toString()
.
$dbTable = new Application_Model_DbTable_TradeshowBooking(); $select = $dbTable->select(); $select->setIntegrityCheck(false); $select->where('ends_on + INTERVAL 4 WEEK > ? ', $requestParams['ends_on']); Zend_Registry::get('logger')->log($select->__toString(), Zend_Log::INFO);