使用多个 where 子句在 CodeIgniter 中查询
Query in CodeIgniter with several where clauses
我正在尝试使用严格的 where 子句进行查询,但它给出了错误的结果。我需要查看这些具有 role_id=1(即学生)的用户,这些用户未被停用。我取$this->uri->segment(3)
=teacher_id。第三个where子句是我只需要和老师所在学校在同一所学校学习的学生,我带$this->uri->segment(3)
。我的查询是:
public function select_students() {
$this->db->select('*');
$this->db->from('users');
$this->db->where('deactivated_at = "0000-00-00 00:00:00" || deactivated_at IS NULL
AND role_id =1 AND school_id = ("SELECT school_id FROM users WHERE user_id=$this->uri->segment(3)")');
$result=$this->db->get();
return $result->result();
}
我找到了解决方案:
public function select_students() {
$this->db->select('*');
$this->db->from('users');
$this->db->where('(users.deactivated_at = "0000-00-00 00:00:00" OR users.deactivated_at IS NULL) AND users.role_id = 1 ');
$this->db->where('users.school_id',$this->uri->segment(4) );
$result=$this->db->get();
return $result->result();
}
最好使用自定义 SQL,然后用 CI 方法换行。这将使您可以灵活地编写任何自定义查询并使用 CI 安全性保护查询。
public function select_students() {
$sql = SELECT * FROM users WHERE deactivated_at = "0000-00-00 00:00:00" OR deactivated_at IS NULL AND role_id =1 AND school_id = (SELECT school_id FROM users WHERE user_id= (int) $this->uri->segment(3));
$query = $this->db->query($sql);
return $query->result();
}
我正在尝试使用严格的 where 子句进行查询,但它给出了错误的结果。我需要查看这些具有 role_id=1(即学生)的用户,这些用户未被停用。我取$this->uri->segment(3)
=teacher_id。第三个where子句是我只需要和老师所在学校在同一所学校学习的学生,我带$this->uri->segment(3)
。我的查询是:
public function select_students() {
$this->db->select('*');
$this->db->from('users');
$this->db->where('deactivated_at = "0000-00-00 00:00:00" || deactivated_at IS NULL
AND role_id =1 AND school_id = ("SELECT school_id FROM users WHERE user_id=$this->uri->segment(3)")');
$result=$this->db->get();
return $result->result();
}
我找到了解决方案:
public function select_students() {
$this->db->select('*');
$this->db->from('users');
$this->db->where('(users.deactivated_at = "0000-00-00 00:00:00" OR users.deactivated_at IS NULL) AND users.role_id = 1 ');
$this->db->where('users.school_id',$this->uri->segment(4) );
$result=$this->db->get();
return $result->result();
}
最好使用自定义 SQL,然后用 CI 方法换行。这将使您可以灵活地编写任何自定义查询并使用 CI 安全性保护查询。
public function select_students() {
$sql = SELECT * FROM users WHERE deactivated_at = "0000-00-00 00:00:00" OR deactivated_at IS NULL AND role_id =1 AND school_id = (SELECT school_id FROM users WHERE user_id= (int) $this->uri->segment(3));
$query = $this->db->query($sql);
return $query->result();
}