2017-11-02 9 views
0

여기 내 코드입니다 :PHP를 호출 시도의 catch 블록에서 oci_execute하는

$command
try 
{ 
    oci_execute($command); 
} 
catch(Exception $e){ 
    $this->sendMailFunction($e); 
} 

는 오라클 SQL 쿼리입니다가. 내 질문은 쿼리가 실패하면 컨트롤이 catch 블록에 들어 가지 않는다는 것입니다. 왜 그래야만하지? 나는 php의 yii 프레임 워크를 사용하고있다.

+0

예외를 발생시키기 위해 oci_execute가 문서화 되었습니까? – Mat

+0

예외가 발생하지만 제어가 catch 블록으로 들어 가지 않습니다. –

답변

0

oci_execute 예외를 throw하지 않습니다. 실패 할 경우 부울 false이 반환되고 Warning이 생성됩니다. 오류 정보를 얻으려면 try/catch 대신 oci_error() 함수를 호출해야합니다 :

if (false === oci_execute($command)) { 
    $this->sendMailFunction(oci_error($command)); 
}; 

을 당신이 당신의 오류 당신이 그것을 억제하는 @ 기호를 붙일 수 있습니다 로그에 Warning을하지 않으려면.