Wat betreft de sql-injectie, ik zou overschakelen naar PDO met behulp van een voorbereide verklaring .
U kunt een eenvoudige is_array() . gebruiken op uw waarden om te controleren op een array en er vervolgens doorheen te bladeren. Je hebt gelijk, zoals het is, je filter functie zal arrays niet correct verwerken.
Bewerken: Als u PDO en een voorbereide verklaring gebruikt, hebt u mysql_real_escape_string niet nodig niet meer. strip_tags , htmlentities en trim zijn ook niet nodig om de informatie veilig in een database op te slaan, ze zijn nodig wanneer u informatie naar de browser uitvoert (trim niet natuurlijk...), hoewel htmlspecialchars zou daarvoor voldoende zijn. Het is altijd beter om uw informatie / uitvoer correct voor te bereiden op het medium waarnaar u op dat moment uitvoert.