Фильтрация само по себе слово неудачное, вообще непонятно, что оно означает.
А если разобраться со словами, то оба правы: валидация на входе, форматирование на выходе.
В данном случае этому горемыке на надо ничего "фильтровать". Надо валидировать HTML на входе, и потом выводить как есть.
судя по всему, аффтар утащил таки этого франкенштейна в свою уютную норку, не понимая в нём ни бквы, но зато поимев то, за чем приходил - готовый код, который самому писать не надо.
если ты отдашь свою строку "в PDO с плейсхолдером", то тебе вообще ничего не найдёт.
В модель надо передавать массив, а в ПДО вместо одного плейсхолдера струячить столько, сколько элементов в массиве.
То есть передавать тебе надо в модель не строку, которую ты тут со страданиями и рыданиями собрать не можешь, а массив.
запомни простое правило: если тебе кажется, что в РНР что-то не работает, то присмотрись повнимательнее к своему собственному коду.
и попробуй найти в нем хоть какой-то смысл