CodeIgniter:添加到 where 子句


CodeIgniter: Adding to where clause

我在ExpressionEngine(使用CodeIgniter框架)中有以下条件:

if ($group_id !== '')
    {
        $this->db->where("members.group_id", $group_id);
    }

我想添加一个额外的条件(AND),我该怎么做?我是否要添加新$this->db->where('my_field', $my_value)?还是怎么做?

你猜对了。

if ($group_id !== '')
{
    $this->db->where("members.group_id", $group_id);
    $this->db->where('my_field', $my_value);
}

查看代码点火器文档 http://codeigniter.com/user_guide/database/active_record.html很好。

// if (is_numeric($group_id) && $group_id > 0)
if ($group_id)
{
    $this->db->where("members.group_id", $group_id);
    $this->db->where('my_field', $my_value);
    // $this->db->where('my_field >=', $my_value);
    // $this->db->where('my_field <', $my_value);
}

我所做的是写出查询,例如:

$data = array('name' => $_POST['name'], 'lname' => $_POST['lname']);
$sql = "select table where name = ? and lname = ?";
$this->db->query($sql, $data);

我更喜欢把它写出来的原因是,一旦你最终编写了具有许多表连接的非常复杂的查询,就很难读取活动记录查询。

是的.....你可以试试这个:

if ($group_id !== '')
{
    $this->db->where("members.group_id", $group_id);
    $this->db->where('my_field', $my_value);
}

您还可以使用:

$this->db->or_where('my_field',$my_value);