1

isset()変数に値があるかどうかを確認するために使用しています。私の問題は、変数に値がない場合でも (パラメーターが URL に渡されなかった場合)、SQL 文字列が変更されて where 句が追加されることです。

例 - これが渡された URL である場合

http://internal/test/trbm?userID=3213

そして、これは私のphpスニペットです

$user = urldecode($_GET['userID']);

$sql = "Select * from users"
if (isset($user)) {
    $sql .= " WHERE userID = '$user'";
}

echo $sql;

エコー結果は次のとおりです。

Select * from users where userID = '3213'

ただし、この URLhttp://internal/test/trbmは以下のエコー結果を生成し、where 句を追加しますが、(少なくとも私にとっては) isset()false を返す必要があります。

Select * from users where userID = ''

2番目のエコーステートメント(上の1つ)は、私の希望/期待は次のとおりです

Select * from users

isset()このインスタンスで使用するチェックは間違っていましたか? もしそうなら、代わりにどのチェックを使用すればよいですか?

4

5 に答える 5