如何从这段代码获取查询sql指令zf2?

时间:2016-01-20 17:00:38

标签: php mysql zend-framework2 apigility

如何在zf2中获取此代码的SQL查询 只是不返回我的所有记录,我只需要一些列 不得(nombre_pais,genero,ocupacion,sitio_web)

我在mysql控制台(查询)中尝试此代码 它返回ok

 SELECT album.id, album.artist, album.title, pais.nombre_pais, biografia.genero, biografia.ocupacion, biografia.sitio_web
                 FROM album
                    INNER JOIN pais ON  pais.id_album = album.id
                    INNER JOIN biografia ON biografia.id_album = album.id
        WHERE   1 = 1
AND album.artist like '%value_artist%'
AND album.artist LIKE '%value_title%'

,这是我在zf2中的代码: 它没有返回确定。它只返回id,title,artist,而不返回其他表中的其他列。

$where = new Where();
    if (isset($artist) and isset($title))
    {
    $where->like('album.title', '%' . $title . '%')
    ->like('album.artist', '%' . $artist . '%');
    }
    if (isset($artist))
    {
        $where->like('album.artist', '%' . $artist . '%');
    }
    if (isset($title))
    {
        $where->like('album.title', '%' . $title . '%');
    }
    $select = new Select();
    $select->from('album')
    ->columns(array ('id', 'artist','title'))
    ->join('pais', 'pais.id_album = album.id',array('nombre_pais'))
    ->join('biografia', 'biografia.id_album = album.id', array('genero', 'ocupacion', 'sitio_web'))
    ->where($where);

请有人帮助我获得正确的结果

1 个答案:

答案 0 :(得分:1)

要了解生成的SQL的外观,可以使用$ select的getSqlString()方法:

$select->getSqlString();

例如:

 echo $select->getSqlString(); die();

http://framework.zend.com/manual/current/en/modules/zend.db.sql.html