[英]how to count the number of rows returned by query in Codeigniter with Datamapper
我在codeigniter的控制器中使用以下查询。
$u -> where('us_email_id', $username);
$u -> where('us_password', $password1);
$details = $u -> get();
$total = count($details);
echo $total; echo "<br>";
echo count($details);
在上面的代码中,“$ u”是数据映射器“User”的类“User”的对象名,其中我的数据库中的表名是“users”。 我想看看执行查询后返回了多少行。 即使用户ID和密码不匹配,“$ total”也始终显示1。 我想要的是,如果行数返回1则“ok”否则“出错”。 我知道它的基本但如果有人知道那么请帮助我。 提前致谢。
CI中提供了以下内容 - 请访问此页面 - http://codeigniter.com/user_guide/database/results.html
$query->num_rows()
查询返回的行数。 注意:在此示例中,$ query是查询结果对象分配给的变量:
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();
所以在上面的例子中你需要尝试
$details->num_rows();
如果您只想计算找到的总行数,请调用count()
方法而不是get()
。
$u->where('us_email_id', $username);
$u->where('us_password', $password1);
$total = $u->count();
但是,如果你还需要数据,那么你可以简单地调用get()
,然后使用PHP count()
来计算对象的all
属性中有多少个元素。
$u->where('us_email_id', $username);
$u->where('us_password', $password1);
$u->get();
$total = count($u->all);
您可以查看文档以获取更多详细信息。
如果密码已加密,请重试
或者如果所有数据部分都很好,请尝试使用以下代码
$this->db->where(array('us_email_id' => $username,'us_password' => $password1));
echo $this->db->count_all_results('users');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.