PHP比较未返回正确的结果

PHP比较未返回正确的结果,php,sql,pdo,Php,Sql,Pdo,我正在SQL表中查找一个值。该表返回值“text”,但当我对其进行比较时,结果为false。这是否有返回false的原因 while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $valType = $row['valType']; //Result: "text" if("text" === $valType) { $result = "true"; } else { $result = "f

我正在SQL表中查找一个值。该表返回值“text”,但当我对其进行比较时,结果为false。这是否有返回false的原因

while($row = $stmt->fetch(PDO::FETCH_ASSOC)){

    $valType = $row['valType']; //Result: "text"

    if("text" === $valType) {
        $result = "true";
    } else {
        $result = "false";
    }
    echo $result; //Result: "false"
}

多亏@Rocket Hazmat的帮助,我通过使用var_dump($row['valType'])找到了我的问题。这是一个区分大小写的问题。

在您的代码示例中,$valType不是“文本”,而是其他内容。参见下面的示例

<?php
    $valType = "text";
    if("text" === $valType) {
        $result = "true";
    } else {
        $result = "false";
    }
    echo $result; //Prints "true"
?>

可以这样缩短:

<?php
    $valType = "text";
    echo ("text" === $valType ? "true" : "false"); //Prints "true"
?>


什么是
变量转储($row['valType'])给你看?@Rocket Hazmat:它没有返回任何东西。它应该会在你的屏幕上回显一些东西。它没有?那么,
var\u dump($row)
产生了什么呢?也许是打字错误?@Rocket Hazmat:annd看着这个,我想我看到了问题所在。区分大小写!!!谢谢你的帮助,var_dump完全忘记了!这将返回“true”,但是我没有从我的SQL表中获取数据。justin您的问题现在具有误导性,因为比较是有效的,您需要对查询进行故障排除,因为现在您缩小了问题的范围。