Есть два варианта.
Классифицировать все хотелки от пользователя и превратить их в набор
формочек например
Count: ___
Names: ___
И транслировать их в фиксированные запросы типа
SELECT * FROM database WHERE count > _ AND Name IN (___,___)
И второй вариант - дать пользователю
конструктор запросов. Чтоб пользователь как-бы
мышкой
накликал набор предикатов-фильтров. Я не специалист в PHP, но в Java например такие конструкторы
(билдеры) выглядят вот так
https://www.jooq.org/ или так
querydsl.com
Все остальные варианты ты просто не потянешь в силу наверное слабого опыта. Сделать полноценную
защиту от инжекций - сложно даже профессионалам. Это - вечная борьба в кошки-мышки. И тебе
надо очень хорошо знать и DBMS и синтаксические парсеры чтобы хоть что-то полноценно там создать.
И не просто создать и все время поддерживать. Быть в тренде обновлений DBMS и новых векторов угроз.