Да.
Подготовленные операторы, будь то с помощью Zend_Db, Doctrine или простого старого mysqli, защищают вас от внедрения, отделяя структуру запроса от данных.Это означает, что если вы подготовите оператор, который выбирает пользователей на основе их имени и пароля, ни один хакер не сможет предоставить данные, которые превращают этот оператор в другой.
Просто убедитесь, что сам запрос является строковой константой.
Что касается вашего второго вопроса, у Doctrine и Zend_Db разные подходы, подходящие для разных ситуаций и разных эстетических предпочтений.,Здесь уже было несколько вопросов по теме.