Considere usar consultas parametrizadas usando PDO por exemplo.
Como alternativa, coloque suas variáveis entre colchetes {}.
Editar:
Eu perdi sua variável
$subject
contém aspas simples. Isso significa que você tem que escapar deles. (Veja a miríade de outras respostas e mysql_real_escape_string()
sobre isso.) Mas como você pode ver, aspas simples dentro da variável é exatamente como os ataques de injeção funcionam. Escapá-los ajuda a evitar esses problemas, além de permitir que sua consulta armazene os dados esperados. Nenhuma resposta sobre ataques de injeção é completa sem fazer referência a Bobby Tables .