제목 | 컨트롤에서 모델 호출할대 특정 함수에서 에러가 나요 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 니로 | 작성시각 | 2017/01/04 13:39:02 |
|
|||
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
|
천재작곡가
/
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 에러 파일 |
아래처럼 수정해서 테스트 해보세요.