zend_db-> select()通过直接pdo查询提供什么?

时间:2014-10-08 02:02:00

标签: php zend-framework zend-db

我使用以下(部分)类查看继承的代码:

class Model_UserGenre extends Zend_Db_Table_Abstract {...    

$select = $this->select()->from(array('ug' => $this->_name), array('user_id'))
                     ->where('genre_id IN (?)', $genreID)
                                         ->orwhere('sub_genre_id IN(?)', $genreID)
                                         ->group(array('ug.user_id'));
      $result = $this->fetchAll($select);
      return $result;

...}

这只是一个示例代码。我不熟悉Zend,并试图轻易地阅读zend db方法,但对我而言,当我不使用完全动态的查询时,只需插入查询字符串就不必要了。

zend,特别是在这种情况下,是否提供某种直接mysqli或PDO查询不具备的动态能力或效率?

感谢并抱歉这个虚无问题。

1 个答案:

答案 0 :(得分:1)

查询构建器就在PDO之上作为可用性层。它提供了一些PDO不具备的便捷功能,比如处理IN语句。它也可以实现adapter design pattern,您可以非常轻松地换出数据库驱动程序。

基本上,PDO仍然需要您编写原始SQL,而查询构建器将为您执行此操作。查询构建器生成的任何SQL对查询构建器支持的任何SQL适配器都有效(例如PostgreSQL,MySQL,SQLite)。