질문 Q #12476
CI로 CLI application을 만들었는데 database()구문만 만나면 종료되버립니다. 에러메세지도없고..난감
시우압 2015-09-01 14:55:25
CLI에서 Model Class랑 Library 로드시에 씹히는건지 종료되는건지 모르겠습니다.

에러메세지는 암것도 뱉지를 않습니다.

echo "test";
$this->load->library("syncfunction");    
$this->load->model("Sync_M");
$this->load->model("Target_M");

위 경우 test가 cmd창에 정상적으로 뜨고요 아래와같은경우는 아무것도 출력이 되지않습니다.
원인을 모르겠습니다. 로그에서는 model이 제대로 로드 되지않습니다.

$this->load->library("syncfunction");    
echo "test1";
$this->load->model("Sync_M");
echo "test2";
$this->load->model("Target_M");


Log에 찍힌 내용은 이렇고요

DEBUG - 2015-09-01 13:42:31 --> Config Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Hooks Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Utf8 Class Initialized
DEBUG - 2015-09-01 13:42:31 --> UTF-8 Support Enabled
DEBUG - 2015-09-01 13:42:31 --> URI Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Router Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Output Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Security Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Input Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Global POST and COOKIE data sanitized
DEBUG - 2015-09-01 13:42:31 --> Language Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Loader Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Controller Class Initialized
DEBUG - 2015-09-01 13:42:31 --> Database Driver Class Initialized
답변 9
#1 한대승(불의회상) 2015-09-01 15:04:54
DB 접속이 잘되는지 확인 해 보세요.
#2 시우압 2015-09-01 15:05:29
DB접속 잘됩니다.

request_cli 주석 처리하고 controller상에서 호출시 정상적으로 잘돌아갔고요...
#3 한대승(불의회상) 2015-09-01 15:07:11
request_cli 는 뭔가요?
보여주신 코드에는 없는것 같은데..
#4 시우압 2015-09-01 15:10:34

별로 중요하지않은 부분이라서 첨부안했습니다만 ㅜㅜ;

$this->input->is_cli_request() 요부분 주석 처리하고 웹브라우저로 호출시 정상적으로 로직 다잘탑니다 ㅜㅠ;


$this->load->library("syncfunction");    
$this->load->model("Sync_M");
$this->load->model("Target_M"); 

CLI에서 $this->load->database()만 만나면 프로세스가 죽어버립니다.
#5 한대승(불의회상) 2015-09-01 15:28:39
$_SERVER 와 같은 웹 전용 변수를 기준으로 DB 설정이 달라지거나 하지는 않는지 살펴보세요.
database() 만나면 죽는다는건 DB 설정 관련해서 뭔가 문제가 있다는 뜻이니까요.
#6 시우압 2015-09-01 15:31:27
참고하겠습니다 감사합니다 ^^
#7 들국화 2015-09-01 16:01:52
설정에 database라이브러리를 자동로딩 해 놓앗나요?

$autoload['libraries'] = array('database')
#8 시우압 2015-09-01 18:24:03
아뇨 해놔야하는건가요 ??
#9 한대승(불의회상) 2015-09-02 08:57:25
@시우압 필요 할 때만 로드 하면 됩니다.
자주 쓰니까 autoload.php 에 등록하고 사용하는거죠.