Bueno, antes que nada te recomiendo leer esto:
http://code.google.com/p/doctype/wiki/EsArticleIntroductionToXSS
mysql_real_escape_string, como te dice en el manual, te escapa caracteres especiales tomando en cuenta la codificación de la base de datos.
pero por sí mismo no funciona, segun el código que pusiste, imaginate que yo meto desde mi url esto:
archivo.php?id=(delete from pueblos where id>0).
Entonces, la query que pasaría sería:
con lo cual yo podría borrar todos los registros de tu tabla.
Entonces, antes que nada debes tener la costumbre de incluir comillas en tus consultas así:
Así mi código maligno quedará como texto y tu tabla estará segura.
pero digamos que yo soy mas listo y escribo esto en la URL:
archivo.php?id=43' and id=(delete from pueblos where id>0) and nombre='sdf.
Y con eso ahora la query quedara como:
Y nuevamente estás en peligro, allí es donde entra mysql_real_escape_string():
tras lo cual la consulta quedaría como:
Y de nuevo has evitado mi intento de hacerte pasar un muy mal día.