何时使用codeigniter where()函数和何时get_where()

时间:2017-07-30 08:00:30

标签: codeigniter

我一直在阅读有关这两项功能的文档,但我仍然无法完全理解这两项功能。

我认为get_where从数据库中选择数据,但我们何时应该使用where()函数而不是get_where()

2 个答案:

答案 0 :(得分:4)

get_where()

使用CodeIgniter的ActiveRecord实现还有很多其他方法可以获取数据,但如果需要,还可以使用完整的SQL查询: 例如:

$query = $this->db->get_where('people', array('id' => 449587));

最终,get_where()是一个天真的案例,当然也是我代码中最常用的案例 - 我无法想到任何其他语言中的另一个框架,它使您能够通过一行代码。

get_where([$table = ''[, $where = NULL[, $limit = NULL[, $offset = NULL]]]])

参数:

  • $ table(mixed) - 从中​​获取数据的表;字符串或数组
  • $ where(string) - WHERE子句
  • $ limit(int) - LIMIT条款
  • $ offset(int) - OFFSET子句

此功能作为get()使用,但也可以直接添加WHERE

  

$this->db->get();相同,但允许您添加   第二个参数中的where子句,而不是使用   db->where()功能。

其中()

此功能使您可以在查询中设置WHERE子句。

您还可以添加where子句,排序条件等:

$this->db->select('first_name', 'last_name');
$this->db->from('people');
$this->db->where('id', 449587);
$this->db->order_by('last_name, first_name');
$query = $this->db->get();

可以将所有这些条件链接在一起,但我更喜欢将它们放在单独的行上以便于阅读。

简单来说,get_where是一种奢侈品,但where()为您提供了更大的灵活性。

答案 1 :(得分:1)

get_where是一个组合函数 - 可以说是where()get()函数,

根据文件:

  

<强> $这 - &GT; DB-&GT; get_where()

     

与上述功能相同,只是它允许你添加一个   &#34;其中&#34;第二个参数中的子句,而不是使用   db-&gt; where()函数

还可以快速浏览一下您将注意到的get_where()方法的源代码

if ($where !== NULL)
{
    $this->where($where);
}

其中$whereget_where()方法的第二个参数。

简单来说,$this->db->get_where('table name', 'where clause')$this->db->where('where clause')->get('table name');

的别名