php db select - Comment imprimer une requête sql exacte dans le framework zend?




6 Answers

de> = 2.1.4

echo $select->getSqlString()
update query fetchrow

J'ai le morceau de code suivant que j'ai pris du modèle,

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

Quand j'utilise une requête de mise à jour dans zend like,

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

Ici, je veux connaître la requête mysql exacte. Est-il possible d'imprimer la requête mysql dans zend? bon conseil




Vous pouvez utiliser Zend_Debug::Dump($select->assemble()); pour obtenir la requête SQL.

Ou vous pouvez activer le profileur Zend DB FirePHP qui vous obtiendra toutes les requêtes dans un format soigné dans Firebug (même les instructions UPDATE).

EDIT : Profilage avec FirePHP fonctionne également en FF6.0 + (pas seulement en FF3.0 comme suggéré dans le lien)




vous pouvez imprimer ..

print_r($select->assemble());



Utilisez ceci:-

echo $select->query();

ou

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



Je l'ai fait de cette façon

$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();



$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);





Related