5 причин использовать db_select() вместо db_query()

  • Вы можете строить динамические запросы с вариативным числом условий, джойнов, полей и т.д. (смотрите field_read_fields для примера);
  • При использовании db_select() у вас есть возможность расширить функционал с помощью так называемых Extenders
  • Если вы хотите, чтобы другие модули взаимодействовали с вашими запросами, просто добавьте теги и SelectQuery будет автоматически вызывать соответствующий альтер хук для этого тега;
  • Если вам необходимо использовать node_access чтобы показывать материалы только тем пользователям, которые могут их видеть, просто добавьте тег 'node_access' к вашему запросу;
  • SelectQuery имеет несколько особенностей, которые помогут вашему коду работать одинаково во всех поддерживаемых БД.

Если ни одна из вышеперечисленных причин не подходит для вашего случая, используете db_query().