По историческим причинам существует несколько различных вариантов создания запросов.
В ранних версиях Zend Framework у Zend_Db_Tables был метод fetchAll с параметрами, где порядок, смещение и ограничение, которые вы можете использовать для выборки строк из таблицы. Разработчики вскоре обнаружили ограничения в этом подходе. Как бы вы добавили предложение GROUP BY?
Zend_Db_Select был изобретен для решения этой проблемы, и вы заметите, что, начиная с ZF 1.5, fetchAll и связанные методы принимают экземпляр Zend_Db_Select в качестве первого параметра. Использование других параметров fetchAll теперь не рекомендуется, и вы должны передавать либо строку SQL, либо объект Zend_Db_Select.
Zend_Db_Select — это просто программный интерфейс для построения SQL-запроса. Это отлично подходит для изменения частей SQL на основе пользовательского ввода или различных факторов, поскольку вместо манипулирования строками вы можете просто изменить вызовы методов и аргументы.
Zend_Db_Table вернет экземпляр Zend_Db_Table_Select (подкласс Zend_Db_Select) с предопределенным именем таблицы, если вы вызовете его метод select — это единственное различие между Zend_Db_Select и Zend_Db_Table_Select.
На самом деле вам нужно решить, использовать ли Zend_Db_Select или писать SQL вручную. Zend_Db_Select не является бесконечно гибким, но с ним легко читать, манипулировать и работать с ним.
person
David Snabel-Caunt
schedule
29.10.2010