我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 = ''
我想要/期望的第二个回声语句(右上方的那个)是
Select * from users
在这种情况下是否isset()
使用了不正确的检查?如果是这样,我应该在它的地方使用什么支票?