Quanto à injeção de sql, eu mudaria para PDO usando uma instrução preparada a> .
Você pode usar um simples
is_array() em seus valores para verificar uma matriz e, em seguida, percorra-a. Você está correto, pois está, seu filter função não manipulará matrizes corretamente. Editar: Se você usa PDO e uma declaração preparada, você não precisa de
mysql_real_escape_string não mais. strip_tags , htmlentities e trim também não são necessários para armazenar as informações com segurança em um banco de dados, eles são necessários quando você envia informações para o navegador (trim não é claro...), embora htmlspecialchars seria suficiente para isso. É sempre melhor preparar sua informação/saída corretamente para o meio para o qual você está enviando naquele momento.