一些列被阅读,其他列不被

时间:2016-08-31 23:04:41

标签: php mysql sql mysqli

我试图验证用户登录的用户名和密码,但操作失败,我要求mysqli_query搜索来自登录表单的用户名和密码,但查询无法找到用户!当我使用var_dump和从mysqli_fetch_array传入的reuslt时,它返回bool(false)。

当我要求查询搜索名字或姓氏和密码时(我完全改变了sql语句)!它运作良好!!!所以,语法没有错误..一切都很好!如果我使用var_dump作为结果它返回结果数组的所有信息!并返回所有列,那么这里的问题是什么? (有些栏目已经阅读,有些栏目没有了)

这会返回bool(false):

    public static function authenticate($UniqueUser="", $HashedPass=""){
        global $database;

        $user= $database-> escaped_string($UniqueUser);
        $pass = $database-> escaped_string($HashedPass);

        $sql  = "SELECT * FROM Users ";
        $sql .= " WHERE UniqueUser = \"{$user}\" ";
        $sql .= " AND HashedPass = \"{$pass}\" ";
        $sql .= " LIMIT 1";


        $result = $database-> query($sql);
        $result_set = $database-> fetch_array($result);
        return !empty($result_set) ? array_shift($result_set) : false;
    }

这很好用:

    public static function authenticate($lastname="", $HashedPass=""){
        global $database;

        $user= $database-> escaped_string($lastname);
        $pass = $database-> escaped_string($HashedPass);

        $sql  = "SELECT * FROM Users ";
        $sql .= " WHERE LastName = \"{$user}\" ";
        $sql .= " AND HashedPass = \"{$pass}\" ";
        $sql .= " LIMIT 1";


        $result = $database-> query($sql);
        $result_set = $database-> fetch_array($result);
        return !empty($result_set) ? array_shift($result_set) : false;


    }
程序方式,它给了我同样的错误..这个函数给了我bool(假)

function authenticate ($user, $pass){
            $sql  = "SELECT * FROM Users ";
            $sql .= " WHERE UserAcc = \"{$user}\" ";
            $sql .= " AND HashedPass = \"{$pass}\" ";
            $sql .= " LIMIT 1";
    $result = mysqli_query($sql);
$result_set = mysqli_fetch_array($result);
return !empty($result_set) ? array_shift($result_set) : false;
}

这很好用!他们之间的区别我刚刚更改了sql列

function authenticate ($user, $pass){
            $sql  = "SELECT * FROM Users ";
            $sql .= " WHERE LastName = \"{$user}\" ";
            $sql .= " AND HashedPass = \"{$pass}\" ";
            $sql .= " LIMIT 1";
    $result = mysqli_query($sql);
$result_set = mysqli_fetch_array($result);
return !empty($result_set) ? array_shift($result_set) : false;
}

0 个答案:

没有答案
相关问题