수색…


데이터 선택

다음 함수를 사용하면 SQL SELECT 문을 작성할 수 있습니다.

$this->db->get()

그러면 선택 쿼리가 실행되고 결과가 반환됩니다. 테이블 자체에서 모든 레코드를 검색하는 데 사용할 수 있습니다.

$query = $this->db->get('tablename');  // Produces: SELECT * FROM tablename

두 번째 및 세 번째 매개 변수를 사용하면 제한 및 오프셋 절을 설정할 수 있습니다.

$query = $this->db->get('tablename', 10, 20);

// Executes: SELECT * FROM tablename LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)

데이터 선택

조건이있는 데이터 선택

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition 
                   ->get();
return $query->result();

여러 조건의 데이터 선택

$conditions = array('column_name_1' => $value_1, 'column_name_2' => $value_2);
$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where($conditions) // Conditions
                   ->get();
return $query->result();

조건 및 제한이있는 데이터 선택

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition
                   ->limit(10) // Maximum 10 rows
                   ->get();
return $query->result();

조건, 최대 행 및 오름차순으로 데이터 선택

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition
                   ->limit(10) // Maximum 10 rows 
                   ->order_by('id','DESC') // Order data descending 
                   ->get();
return $query->result();

두 번째 선택적 매개 변수로 데이터 선택

보통 CodeIgniter에서는 select([$select = '*'[, $escape = NULL]]) 에서 두 번째 매개 변수를 사용하지 않습니다. FALSE로 설정하면 CodeIgniter는 필드 또는 테이블 이름을 보호하지 않습니다.

다음 예제에서는 sql query를 사용하여 datetime 형식 필드를 선택하고 FALSE 설정 FALSE (이렇게하면 CI가 쿼리를 자동으로 이스케이프하지 않도록 지시합니다).

public function getUserInfo($id)
{
    $this->db->select('BaseTbl.id, BaseTbl.name, DATE_FORMAT(BaseTbl.createdDtm, "%d-%m-%Y") AS createdDtm', FALSE); // FALSE is the second optional parameter
    $this->db->from('tbl_users as BaseTbl');
    $this->db->where('isDeleted', 0);
    $this->db->where('BaseTbl.id', $id);
    $query = $this->db->get();
            
    return $query->result();
}

FALSE 설정하지 않으면 쿼리가 자동으로 이스케이프되고 중단됩니다.

쿼리 작성기를 사용하여 테이블 조인

때때로 우리는 여러 테이블에 합류해야 합계 데이터를 얻을 수 있습니다. 여기 CodeIgniter Query Builder / Active Records를 사용하여 동일한 결과를 얻을 수 있습니다.

public function getStudentInfo($studentid){
    $query = $this->db->select("st.id, st.name, st.class, mk.maths, mk.science")
               ->from("students as st")
               ->join("marks as mk", "mk.student_id = st.id", "inner")
               ->where("st.id", $studentId)
               ->get();
    return $query->result();        
}

여기에서는 join ()을 사용하여 여러 테이블을 조인하고 "inner", "left", "right"등과 같은 세 번째 매개 변수에서 조인 유형을 변경할 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow