perchè possa funzionare correttamente, mysql_real_escape_string ha bisogno di una connessione attiva ( mysql_connect ) prima di poter essere eseguito (questo per poter vedere quale charset è in uso).

Molto probabilmente nel tuo php.ini ci sono dei valori predefiniti per la connessione al database, quindi quando mysql_real_escape_string non trova la connessione, invoca implicitamente mysql_connect che utilizza quei dati ma, essendo sbagliati, ti restituisce quell'errore