$ query-> row()和$ query-> result()最简单的解释

时间:2014-01-30 19:07:04

标签: php mysql codeigniter

我最近对CI的行为感到非常恼火,可能是因为我对小事情一无所知,现在问题是:D。我正在创建一个应用程序,我正在尝试使用活动记录获得一行,现在作为一个优秀的程序员(我认为)我试试这个 当我选择登录

if($query->num_rows() == 1)
{
    // do something
}
// now when i make an update, that also a single row i tend to use this command
if($query->affected_rows() == 1)
{
   // perform some action
}
// now i use this code when i've to get all entries of one single user
if($query->num_rows() > 0)
{
   // show them
}

现在很多时候我得到的错误就像“在非对象上调用成员函数num_rows()” 任何人都可以请解释使用什么,何时使用以及如何使用,以便代码点火器永远不会成为我

1 个答案:

答案 0 :(得分:0)

1.num_rows()

num_rows()是result helper functions,它们用于query resultobject,请注意我们don't use就像$this->db->num_rows()一样,我们就像使用它一样:

$query = $this-query('query'); 

OR

$query = $this->db->get('tableName');

if($query->num_rows()>0){ ....}  

现在让我们看看affected_rowS()。

2. affected_rows()

affected_rows是query helper function,它们的使用方式与$this->db->affected_rows()类似。请注意,$this->db->affected_rows()仅在有效的db write操作之后产生有效结果。即插入,更新和删除。数据库类有一个小的hack,允许它在删除操作后返回正确数量的受影响的行,因为MySQL“DELETE FROM TABLE”返回0个受影响的行。

3.$query->result()

此函数将查询结果作为对象数组返回,或者在失败时返回空数组。 即如果你有多个结果,你必须loop the result object喜欢:

foreach ($query->result() as $row){....}

4.$query->row()

此函数返回单个结果行作为对象。如果您的查询有多行,则为returns only the first row

我希望我的解释足够可读。虽然您可以在CI文档中找到所有这些相关示例。