Dzieje się tak, ponieważ mysql_real_escape_string uwzględnia aktualny zestaw znaków połączenia. W związku z tym potrzebuje połączenia. :-)
Jeśli nie chcesz ręcznie konfigurować połączenia z wyprzedzeniem, możesz ustawić różne Domyślne ustawienia środowiska wykonawczego MySQL w twoim pliku .ini.
Jeśli jednak używasz własnej klasy bazy danych (lub po prostu ręcznych poleceń), często warto nawiązać połączenie na początku życia skryptu.