2016-06-08 6 views
2

안녕하세요, 저는 CodeIgniter에서 쿼리 빌더를 사용하여 문제가 있습니다. 문제는 작은 따옴표를 사용하여 날짜를 래핑한다는 점입니다. 쿼리는 다음과 같이 표시됩니다.날짜에 작은 따옴표를 제거하십시오 codeigniter

SELECT * 
FROM `enquiries` 
WHERE DAY(enquiry_date) = 'DAY(CURDATE())' 
AND YEAR(enquiry_date) = 'YEAR(CURDATE())' 
AND MONTH(enquiry_date) = 'MONTH(CURDATE())' 

물론 작은 따옴표로 인해 결과를 반환하지 않습니다. 내가 그들을 없앨 방법이 있니? 또는 하드 코드 된 쿼리를 수행해야합니까? 내가이

SELECT * FROM `enquiries` WHERE DAY(enquiry_date) = DAY(CURDATE()) AND MONTH(enquiry_date) = MONTH(CURDATE()) AND YEAR(enquiry_date) = YEAR(CURDATE()) 

처럼하면 phpMyAdmin SQL 콘솔에서 동일한 쿼리를 실행하면

는 그것을 잘 작동합니다.

내 방법 :

public function enquiries_get(){ 
    $this->load->model('Model_enquiries'); 
    $enquiries = $this->Model_enquiries->get_many_by(array('DAY(enquiry_date)' => 'DAY(CURDATE())', 'YEAR(enquiry_date)' => 'YEAR(CURDATE())', 'MONTH(enquiry_date)' => 'MONTH(CURDATE())')); 
    if ($enquiries) { 
     $this->response(array('status' => 'success', 'status_code' => '200', 'message' => '200 OK', 'response' => $enquiries)); 
    } else { 
     $this->response(array('status' => 'failure', 'status_code' => '404', 'message' => '404 Not Found', 'response' => 'We couldn\'t find any enquiries for today. Please check again later.'), REST_Controller::HTTP_NOT_FOUND); 
    } 

} 

어떤 아이디어? 직접 쿼리에

+0

'set()'함수는 값을 그대로 두는 데 사용할 수있는 세 번째 인수를 취합니다.이 함수는 이와 같은 함수를 호출하는 데 필요합니다. [query builder docs] (https://www.codeigniter.com/userguide3/database/query_builder.html#inserting-data)에서이를 설명합니다. – tadman

답변

1
오늘의이 같은 날짜, 연도와 월을 얻기 위해 PHP 함수를 시도 할 수 있습니다

....

$year = date('Y'); 
$month = date('m'); 
$day = date('D'); 

그리고 통과 변수 ... !!

+0

$ this-> db-> query()를 직접 사용하여 관리했습니다. – BRG

+0

환영합니다 .... @ BRG – Kunal

관련 문제