PHP比较未返回正确的结果
我正在SQL表中查找一个值。该表返回值“text”,但当我对其进行比较时,结果为false。这是否有返回false的原因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
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您的问题现在具有误导性,因为比较是有效的,您需要对查询进行故障排除,因为现在您缩小了问题的范围。