mysqli_real_escape_string()
必要条件 DBへのアクティブな/確立された接続が必要です。 m_r_e_s()
を実行しているので 接続する前に電話をかけると、ブール値FALSEが返され、失敗を示します。つまり、「引用された」値を破棄しているのです。
文字列に挿入されたブール値のfalse値は空の文字列に変換されるため、クエリは次のようになります
SELECT ... WHERE username=''
^---see the boolean false in there?
コードシーケンスは次のようになります。
session_start();
connect_to_db();
prepare_variables();
do_query();
また、mysqliを使用しているのに、なぜとにかく手動で変数をエスケープするのですか?プリペアドステートメントとプレースホルダーを使用して、問題を完全に回避することができます。