首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php mysql信息检索

php mysql信息检索
EN

Stack Overflow用户
提问于 2011-04-16 19:18:22
回答 2查看 157关注 0票数 2
代码语言:javascript
复制
if ($cuser->loggedin()){
    if (!empty($_POST['returnto']))
    {
        header("Location: ".htmlspecialchars($_POST['returnto']));
    }
    else
    {
        $query = ("SELECT id, username, check FROM users WHERE id=".$CURUSER['id']);
        $result = do_mysql_query($query);
        while($row = mysql_fetch_assoc($result))
{
    if ($row['check'] == true) {
        echo 'omg';
    } else {
echo 'omg false';


    }
    //To stop script executing next code ant print info...
    die();
}

    }

    die();
}

但是总是得到:omg,即使我把它变成了假的。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-16 19:27:01

在您的情况下,这始终是

代码语言:javascript
复制
if ($row['check'] == true) {...}

相同于

代码语言:javascript
复制
if ($row['check']) {...}

检查$row['check']值而不是..。

代码语言:javascript
复制
if ($row['check'] == 'true') {...} 

...if您有字符串true和/或false作为check列的值。

票数 1
EN

Stack Overflow用户

发布于 2011-04-16 19:29:29

当您使用mysql_fetch_assoc获得结果时,数组中的值类型几乎总是字符串(它们有时可能是null,但这不是问题所在)。

如果将任何非空字符串与true比较运算符进行比较,它们将计算为==

返回的实际值将不是true。它可能是包含单词truefalse的字符串。但是,与布尔型true相比,这两种方法都可以计算为true

你应该比较什么取决于你的数据库里有什么.

您的评论表明该字段是一个枚举。这为您提供了两个可能的字符串,"true""false"。由于在PHP中,"false" == true是正确的行为(因为非空字符串的计算结果为true),因此需要与字符串值进行比较:

代码语言:javascript
复制
if ($row['check'] == "true") {
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5688929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档