El problema es que usar directamente las variables en tu consulta es un peligro, es algo totalmente inseguro y más aún si no haced validación alguna para asedurarte de que recibes lo que esperas.
Se llama
injeccion SQL.
En php puedes encontrar algunas funciones para prevenirlo y escapar los valores adecuadamente como por ejemplo
mysql_real_escape_string()
En el primer enlace que te paso tienes recomendaciones y Técnicas de evitación.
En cuanto a addslashes() según el manual:
Cita: Las funciones genéricas como addslashes() son útiles solamente en un entorno muy específico (p.ej., MySQL en un juego de caracteres monobyte con NO_BACKSLASH_ESCAPES deshabilitada), por lo que es mejor evitarlas.