繁体   English   中英

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

[英]simplest explanation of $query->row() and $query->result()

最近,我对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.num_rows()

NUM_ROWS()的result helper functions ,它们被用来对一个query resultobject ,注意,我们don't use它像$this->db->num_rows()而不是我们可以做:

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

要么

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

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

现在,让我们看看受影响的_rowS()。

2. affected_rows()

受影响的行是一个query helper function ,它们的用法类似于$this->db->affected_rows() 请注意,仅在执行有效的数据库write操作之后, $this->db->affected_rows()才会产生有效的结果。 即插入,更新和删除。 数据库类有一个小技巧,允许它在删除操作后返回正确数量的受影响的行,因为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文档中找到所有带有相关示例的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM