När det gäller sql-injektionen, skulle jag byta till PDO med ett förberett uttalande .
Du kan använda en enkel is_array() på dina värden för att leta efter en array och sedan gå igenom den. Du har rätt, som det är, ditt filter funktionen kommer inte att hantera arrayer korrekt.
Redigera: Om du använder PDO och ett förberett uttalande behöver du inte mysql_real_escape_string längre. strip_tags , htmlentities och trim behövs inte heller för att lagra informationen säkert i en databas, de behövs när du matar ut information till webbläsaren (trim inte så klart...), även om htmlspecialchars skulle räcka för det. Det är alltid bättre att förbereda din information/utdata korrekt för det medium du matar ut till just nu.