Как напечатать точный SQL-запрос в Zend Framework? - PullRequest
68 голосов
/ 11 октября 2011

У меня есть следующий фрагмент кода, который я взял из модели,

    ...
                  $select = $this->_db->select()
                    ->from($this->_name)
                    ->where('shipping=?',$type)
                    ->where('customer_id=?',$userid);
                 echo  $select; exit; // which gives exact mysql query.
            .....

Когда я использую запрос на обновление в Zend, как,

$up_value = array('billing'=> '0');
$this->update($up_value,'customer_id ='.$userid.' and address_id <> '.$data['address_Id']);      

Здесь я хочу знать точнуюMySQL запрос.Есть ли какой-нибудь возможный способ напечатать запрос mysql в Zend?добрый совет

Ответы [ 14 ]

0 голосов
/ 28 сентября 2016

Я сделал это таким образом

$sql = new Sql($this->adapter);
        $select = $sql->select();
        $select->from('mock_paper');
        $select->columns(array(
            'is_section'
        ));
        $select->where(array('exam_id = ?' => $exam_id,'level_id = ?' => $level_id))->limit(1);



        $sqlstring = $sql->buildSqlString($select);
        echo $sqlstring;
        die();
0 голосов
/ 06 февраля 2014
$db->getProfiler()->setEnabled(true);

// your code    
$this->update('table', $data, $where);    
Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());    
Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());    
$db->getProfiler()->setEnabled(false);
0 голосов
/ 13 октября 2011

Проверьте Zend_Db_Profiler . Это позволяет вам записывать любые операторы SQL по мере их подготовки и выполнения. Он работает как для операторов UPDATE, так и для запросов SELECT.

0 голосов
/ 11 октября 2011

Используйте это: -

echo $select->query();

или

Zend_Debug::dump($select->query();
...