我使用以下(部分)类查看继承的代码:
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查询不具备的动态能力或效率?
感谢并抱歉这个虚无问题。
答案 0 :(得分:1)
查询构建器就在PDO之上作为可用性层。它提供了一些PDO不具备的便捷功能,比如处理IN
语句。它也可以实现adapter design pattern,您可以非常轻松地换出数据库驱动程序。
基本上,PDO仍然需要您编写原始SQL,而查询构建器将为您执行此操作。查询构建器生成的任何SQL对查询构建器支持的任何SQL适配器都有效(例如PostgreSQL,MySQL,SQLite)。