CodeIgniter中的多条件WHERE子句

时间:2013-04-08 08:35:06

标签: php mysql codeigniter

我想删除一些像核心PHP中的查询这样的数据

WHERE user_id=$id AND sender_id=$send_id OR user_id=$send_id AND sender_id=$id

所以我在CodeIgniter中尝试使用Active Record,如下所示:

$this->db->where('user_id ', $id);
$this->db->or_where('user_id ', $send_id);
$this->db->where('sender_id ', $send_id);
$this->db->or_where('sender_id ', $id);

但它给了我错误的结果。我做错了什么?

2 个答案:

答案 0 :(得分:9)

$this->db->where(array('user_id' => $id, 'sender_id' => $send_id));
$this->db->or_where(array('user_id' => $send_id, 'sender_id' => $id));

您希望将关联数组传递给每个关联数组,在查询中数组中的每个元素之间使用AND,并且使用->or_where()将在查询中使用OR 。有关详细信息,请参阅documentation

答案 1 :(得分:2)

试试这个

    $this->db->where('user_id ', $id);
    $this->db->where('sender_id ', $send_id);

    $this->db->or_where('sender_id ', $id);
    $this->db->where('user_id ', $send_id);