CI - num_rows不返回可读数字

时间:2018-02-13 02:34:34

标签: php codeigniter codeigniter-3

使用CodeIgniter 3和num_rows()使用return不会返回可读数字(它为空)。使它显示实际数字的唯一方法是使用printecho - 但这会破坏我需要函数的功能。

    public function count_notifications($user_id)
    {
        $query = $this->db->select("*")
            ->where("user_id", $user_id)
            ->order_by("time_received", "desc")
            ->get("members_notifications")
            ->num_rows();

        return $query;
    }

为什么表现得那样?

3 个答案:

答案 0 :(得分:1)

num_rows()将始终返回一些整数,无论​​是int(0)还是int(4)。我运行了自己的测试,与你的测试非常相似,因为有一秒我认为它可能是可能的(事实并非如此)。

您应该查看典型的调试路由。我唯一能想到的是你的语法或措辞中有一个错误导致get()返回布尔值(也许你没有看到错误报告关闭)。

我不确定您是如何验证该函数未返回整数,但可能从那里开始,因为您的逻辑可能存在问题。

答案 1 :(得分:1)

试一试。

public function count_notifications($user_id)
{
    $query = $this->db->where("user_id", $user_id)
             ->get("members_notifications");            
    return $query->num_rows();
}

我真的不希望它与您的代码不同。但您可以轻松确认$queryCI_DB_result还是布尔。

答案 2 :(得分:0)

尝试使用以下方式:

public function count_notifications($user_id)
{
     $query = $this->db->select("*")
            ->where("user_id", $user_id)
            ->order_by("time_received", "desc")
            ->get("members_notifications");

    return $query->num_rows();
}