La función msqyl_real_escape_string() está diseñada efectivamente para ese propósito, mientras que addslashes() es más genérica y por ende no funcionará igual.
Así que no hay porque perder el tiempo entre cual de las dos funciones es mejor porque no hay punto de comparación, de hecho sería muy torpe de tu parte usar addslashes() sabiendo que no está diseñada para eso.
Piensa un poco, si con addslashes() fuera suficiente, ¿por qué se molestarían en diseñar funciones especificas para escapar cadenas y evitar inyecciones?
Usa tu sentido común.
PDTA:
La extensión MySQL está obsoleta, lee lo siguiente:
http://www.forosdelweb.com/f18/anunc...oleta-1008145/