CI 묻고 답하기

제목 컨트롤에서 모델 호출할대 특정 함수에서 에러가 나요
카테고리 CI 2, 3
글쓴이 니로 작성시각 2017/01/04 13:39:02
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 15283   RSS

admin이라는 컨트롤러를 호출할때 

 

모델 

 

	public function get_visit()
	{
		$now = date("Y-m-d");
		
		$this->db->select('count(CON_ID) COUNT');
		$this->db->from($this->table_name['ECC']);
		
		//오늘기준 검색
		$sdate  = "DAYDATE >= TO_DATE('".$now."','YYYY-MM-DD')";
		$edate  = " DAYDATE < TO_DATE('".$now."','YYYY-MM-DD')+1";
		
		$this->db->where($sdate);
		$this->db->where($edate);
		
		$data = $this->db->get()->row_array();


		return $data;
	}

이부분을 호출하는데요..

$data = $this->db->get()->row_array();

이부분을 지우면 정상적으로 페이지가 뜨는데..

 

에러가 메세지로 나오는건아니구요

 

그냥 하얀 페이지로 아무것도 안뜨는데 왜그런지.. 모르겠네요

 

쿼리문에 이상이 있는것두 아니구요

 

$data = $this->db->get();

echo $this->db->last_query() 해서 쿼리 찍어보면 아무이상도없어요..

 

 

로컬에선 정상적인데 서버에서 테스트하려고 올렸더니 이러네요...

 다음글 컨트롤러에 서브디렉토리의 index를 열 수 있는 방법... (1)
 이전글 form 리던터된 checkbox 의 set_value... (5)

댓글

한대승(불의회상) / 2017/01/04 14:23:33 / 추천 0

아래처럼 수정해서 테스트 해보세요.

$this->db->where($sdate, null, false);
$this->db->where($edate, null, false);

 

천재작곡가 / 2017/01/04 14:27:48 / 추천 0

제생각도 where 문에서 3번째 패러미터 때문인것같네요

 

근데 개인적으로

$sdate  = "DAYDATE >= TO_DATE('".$now."','YYYY-MM-DD')";
$edate  = " DAYDATE < TO_DATE('".$now."','YYYY-MM-DD')+1";

이부분

$sdate  = "DAYDATE >= '{$now} 00:00:00'";
$edate  = "DAYDATE <= '{$now} 23:59:59'";

요렇게 검색하는게 속도가 더 빠르지 않나요?

니로 / 2017/01/04 14:33:38 / 추천 0
where 문에 파라메터를 넣어도 똑같은데.. 
kaido / 2017/01/04 14:44:13 / 추천 0

음...? 지금 뭔가 이상하다고 느끼는건 저만인가요?

$this->db->where("createDatetime >=", $sdate);
$this->db->where("createDatetime <=", date('Y-m-d', strtotime($edate.'+1 day')));


제가 쓰는 구문입니다. 바로 되실겁니다. 조건은 알아서 수정하시면 될테고... strtotime 으로 하는게 day month year 등으로 넘어갈수 있기 때문에 편합니다.

한대승(불의회상) / 2017/01/04 14:51:11 / 추천 0

@kaido DB 서버와 application 서버가 분리된 상황에서 시간이 동기화가 안되어 있는 경우가 종종 있어서 DB 함수를 개인적으로 선호 합니다.

SE가 부지런하면 kaido님 방법을 써도 이슈가 없지만...

니로 / 2017/01/04 15:09:18 / 추천 0

근데 문제가.. 해당 컨트롤러에서 호출하는 다른 db쿼리 함수도 동일하게 사용중인데 ..

한군데서만 빈페이지로 뜨고있어요

kaido / 2017/01/04 15:12:51 / 추천 0

@한대승

이전에 몇번 몇 분씩 틀어져 있어서 하루가 넘어가는 시기가 되면 구매 고객들 리스트가 제대로 안 나오는 케이스를 본뒤로는 항상 동기화 부터 맞추고 들어가거든요.

저야 항상 제가 서버관리까지 다 하다보니 ㅎㅎ

시간이 안맞으면 SE에게 동기화 요구 해도 되는게 아닐지 싶긴 합니다.

 

물론 그게 어렵다면 DB 시간을 써도 상관없습니다.

저도 궁금해서 방금전에 한번 테스트 해봄...

참고... STR_TO_DATE는 mysql 계열 TO_DATE는 오라클 계열입니다.

$now = date("Y-m-d");
		$sdate = "STR_TO_DATE(".$now.",'YYYY-MM-DD')";
		$this->db->where("createDatetime >=", $sdate, false);

 

한대승(불의회상) / 2017/01/04 15:13:12 / 추천 0

@니로 에러 메시지를 살펴보세요.

아파치 로그나 php 에러 파일