C'est parce que mysql_real_escape_string prend en compte le jeu de caractères courant de la connexion. En tant que tel, il a besoin d'une connexion. :-)
Si vous ne souhaitez pas configurer manuellement une connexion à l'avance, vous pouvez définir les différents Paramètres d'exécution MySQL par défaut dans votre fichier .ini.
Cependant, si vous utilisez votre propre classe de base de données (ou simplement les commandes manuelles), il est souvent utile d'établir la connexion au début de la durée de vie de votre script.