使用CodeIgniter 3和num_rows()
使用return
不会返回可读数字(它为空)。使它显示实际数字的唯一方法是使用print
或echo
- 但这会破坏我需要函数的功能。
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;
}
为什么表现得那样?
答案 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();
}
我真的不希望它与您的代码不同。但您可以轻松确认$query
是CI_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();
}