PHP, MySQL.逻辑错误.条件匹配,但仍执行“else”


PHP, MySQL. Logical error. Condition match, but still executes "else"

我想获得"系统"给出的所有行(应该只返回一行,因为表中只有一行符合该条件)。但是,即使它得到了正确的行,并且给定了给定的值为"System",它仍然在三元运算符中返回"3"。

我有这一小段代码,其中$query = mysql_fetch_assoc(mysql_query('SELECT * FROM regtokens WHERE token = ''' . $token . ''''));

下面是我的代码:

echo $query['givenBy'];  //outputs "System"
$level = ($query['givenBy'] === 'System' ? 1 : 3);  
echo $level;             //outputs "3"

似乎你必须使用trim来删除空白区域。我也更喜欢使用strtolower来比较这类字符串。

你可以这样尝试:

$level = (trim(strtolower($query['givenBy'])) === 'system' ? 1 : 3);  
echo $level;