Con
mysql_real_escape_string() haces que lo que escapes con ella no sea tomado como sentencia SQL.
Lo de la inyección
' or '1'='1.. imagínate un login tal que así:
$queryLogin = mysql_query("SELECT * FROM admin WHERE usuario = '".$_POST['usuario']."' AND password = '".$_POST['password']."'");
Ahí la consulta quedaría por ejemplo:
SELECT * FROM admin WHERE usuario = 'Gambinoh' AND password = '' OR '1'='1'
Intepretando que si el password es ''
o si 1 es igual a 1, lo que sería verdadero.
Deberas incluir esa función siempre que la sentencia SQL vaya afectada por la acción del usuario.