保存されている $_SESSION ユーザー名を使用しています:
$usernameunesc = htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');
次のように変数をエスケープします。
$username = mysqli_real_escape_string($link, $usernameunesc);
そして、それを使用して次のクエリを実行します。
$query = mysqli_query($link, "SELECT id FROM users WHERE username = '".$username."'");
最後のクエリは次の出力を返します
1111
クエリから削除$username
して「demo」(実際のユーザー名) に変更すると、クエリは 12 の ID を正常に返しますが、$username
変数を使用しても機能しません。文字列を適切にエスケープしていませんか? これを行うより良い方法はありますか?ちなみに、SQL コマンド ラインでクエリを実行することもできますが、問題なく動作するので、クエリが問題ではないことはわかっています。