ActiveRecord в большинстве случаев подходит только для простых запросов. В случае чего-то более-менее заковыристого приходится лезть в модель и городить огород из правил разной степени кривости (если фреймворк поддерживает), или еще хуже - писать все вручную. Два варианта плохи по определению. Поэтому ActiveRecord для простых операций, а QueryBuilder (или какой-нибудь нативный и удобный объект для работы с БД) с блэкджеком и шл PDO и плейсхолдерами - для всего остального.
Отказываться не стоит, просто нужно использовать молоток для забивания гвоздей, а лопату - для копания. ActiveRecord адски удобен, при простых выборках или рядовых insert \ update он смотрится просто великолепно и делает код более простым и наглядным. В проектах ИМ 80% операций с базой идет через AR, и это очень облегчает жизнь.