0

保存されている $_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 コマンド ラインでクエリを実行することもできますが、問題なく動作するので、クエリが問題ではないことはわかっています。

4

1 に答える 1