我尝试使用Laravel count()
函数来获取行数。我有下面的代码来计算2个连接表的行数。
示例1:
$row = DB::table('log_user_login')
->select(DB::raw('log_user_login.Password as LogPassword'), 'user.*')
->join('user', 'log_user_login.Username', '=', 'user.Username')
->where('log_user_login.LoginSession', '!=', '')
->groupBy('user.ID')
->get();
$count = sizeof($row);
示例2:
$count = DB::table('log_user_login')
->select(DB::raw('log_user_login.Password as LogPassword'), 'user.*')
->join('user', 'log_user_login.Username', '=', 'user.Username')
->where('log_user_login.LoginSession', '!=', '')
->groupBy('user.ID')
->count();
当我echo $count
形成示例1时,$count
的数量是15415.但是示例2的$count
返回89.我可以知道为什么会发生这种情况,我怎么能得到不使用get()
的行数?
答案 0 :(得分:3)
示例1以字节为单位显示sizeof数组,但是示例2显示了table返回的总计数。
因此,获得总计数的最佳方法是使用 - > count(),如示例2所示。
希望你得到答案。
答案 1 :(得分:1)
Please try it.
$row = DB::table('log_user_login')
->select(DB::raw('log_user_login.Password as LogPassword'), 'user.*')
->join('user', 'log_user_login.Username', '=', 'user.Username')
->where('log_user_login.LoginSession', '!=', '')
->groupBy('user.ID')
->get();
echo $count = count($row);
答案 2 :(得分:0)
不要使用sizeof()。这么多时间分配的内存返回量。
使用count()代替sizeof()。