【问题标题】:how to count the number of rows returned by query in Codeigniter with Datamapper如何使用Datamapper计算Codeigniter中查询返回的行数
【发布时间】:2012-05-02 09:50:57
【问题描述】:

我在 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”。我想看看执行查询后返回了多少行。即使用户名和密码不匹配,“$total”也始终显示 1。我想要的是,如果返回的行数为 1,那么“ok”,否则“有问题”。 我知道它的基本知识,但如果有人知道它,请帮助我。提前致谢。

【问题讨论】:

    标签: php codeigniter datamapper codeigniter-2 codeigniter-datamapper


    【解决方案1】:

    以下内容在 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();
    

    【讨论】:

    • 当我们使用 Datamapper 进行 DB 查询时,它在 codeigniter 中不起作用......但是如果我们正在使用 codeigniter 的活动记录,那么这很好。无论如何,它真的很棒,我很感谢你抽出一些时间来帮助我。 Kemal Fadillah 的建议是完美的。但是时间非常宝贵,您投入的时间来帮助我。非常感谢你:)
    • 没问题 - Shashi - 我知道你清楚地提到了 datamapper,但我没有想到并发布上面的内容以用于 activerecord。无论如何都会发生......
    【解决方案2】:

    如果您只想计算找到的总行数,请调用 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);
    

    您可以查看文档了解更多详细信息。

    【讨论】:

    • 完美...很多很多(无限次)感谢您... :)
    • 在查询运行后计算结果的一种更安全的方法是使用 $u->result_count()。这会计算 $this->_dm_dataset_iterator 的结果(如果它已设置),否则使用 count($this->all) 代替。
    【解决方案3】:

    如果密码已加密,请重试

    或者如果所有数据部分都很好,请尝试使用以下代码

    $this->db->where(array('us_email_id' => $username,'us_password' => $password1));
    echo $this->db->count_all_results('users');
    

    【讨论】:

      猜你喜欢
      • 2011-07-22
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 2013-10-03
      • 2011-04-09
      • 1970-01-01
      相关资源
      最近更新 更多