dbh->prepare("SELECT-6ren">
gpt4 book ai didi

检查行时 PHP if 语句 "broken"

转载 作者:行者123 更新时间:2023-11-29 18:03:33 25 4
gpt4 key购买 nike

我无法使用 IF 语句来执行“正确”的操作,即代码;

public function getUID($email)
{
$query = $this->dbh->prepare("SELECT id FROM users WHERE email = ?");
$query->execute(array($email));

$row = $query->fetch(\PDO::FETCH_ASSOC);

alert($row, true); // array(1) { ["id"]=> string(1) "0" }
alert(is_array($row), true); // bool(true)
alert($row == false, true); // bool(false)
if( $row == false ) {
// Here we are!
return false;
}

return $row['id'];
}

出于某种原因,if 语句认为结果为 true,我无法理解为什么:[] sql 命令的输出似乎是正确的,我们应该得到一个 0 的 id-entry...

在写这个问题时,我考虑放弃这个问题并将 $row 与 NULL 进行比较。但这没有帮助。它仍然会返回 false...

最佳答案

这个if显然没有被破坏,这个方法也没有任何问题。正如 @aynber 所指出的,当使用 == 比较事物时,PHP 将 "0" 视为 false 。在这个方法之外,我进行了一个测试,检查它是否返回 false,如果没有,我很高兴并认为“它从数据库返回了 ID。

因此,简单的解决方案是使用 === 进行此检查。比较类型和值。

关于检查行时 PHP if 语句 "broken",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48118047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com