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