mysqli_real_escape_string()
WYMAGA masz aktywne/ustanowione połączenie z bazą danych. Ponieważ robisz m_r_e_s()
zadzwoń ZANIM się połączysz, po prostu otrzymasz z powrotem wartość logiczną FAŁSZ oznaczającą niepowodzenie. Więc usuwasz swoje „cytowane” wartości.
Fałszywe wartości logiczne wstawione do ciągu są konwertowane na puste ciągi, więc Twoje zapytania zaczynają wyglądać tak, jak
SELECT ... WHERE username=''
^---see the boolean false in there?
Twoja sekwencja kodu powinna być:
session_start();
connect_to_db();
prepare_variables();
do_query();
A skoro używasz mysqli, dlaczego mimo to ręcznie zmieniasz znaczenie zmiennych? Możesz po prostu użyć przygotowanej instrukcji + symboli zastępczych i całkowicie ominąć problem.