5

PHPでの使用$stmt->num_rowsに問題があり、何が間違っているのかわかりません。$stmt->num_rows1 を返すはずなのに 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 に答える