5

我在使用$stmt->num_rowsPHP 时遇到问题,我不确定我做错了什么。$stmt->num_rows当它应该返回 1 时返回 0。在 phpMyAdmin 中执行查询时,查询确实有效并返回 1 结果。任何帮助将不胜感激。

public function get_login($username, $password)
{
    $query = "SELECT `id` FROM `users` WHERE `username` = ? AND `password` = ? LIMIT 1;";
    if($stmt = $this->prepare($query))
    {
        $stmt->bind_param('ss', $username, $password);
        if($stmt->execute())
        {
            $stmt->bind_result($id);
            $stmt->fetch();
            $stmt->store_result();
            if($stmt->num_rows > 0)
            {
                return $id;
            }
            return false;
        }
        return false;
    }
    return false;
}
4

1 回答 1

14

试试这个,调用第store_result一个,然后调用fetch结果。

public function get_login($username, $password)
{
    $query = "SELECT `id` FROM `users` WHERE `username` = ? AND `password` = ? LIMIT 1;";
    if($stmt = $this->prepare($query))
    {
        $stmt->bind_param('ss', $username, $password);
        if($stmt->execute())
        {
            $stmt->bind_result($id);
            $stmt->store_result();
            $stmt->fetch();          
            if($stmt->num_rows > 0)
            {
                return $id;
            }
            return false;
        }
        return false;
    }
    return false;
}
于 2013-02-07T00:10:21.977 回答