[英]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.