2012-05-02 3 views
2

레코드를 업데이트 할 때 올바르게 작동하는지 확인하기 위해 '업데이트'의 결과를 사용하고 있습니다.Zend_db가 더 나은 오류보고를 업데이트합니다.

$a = $this->db->insert(self::TABLE, $saveData); 

$ a = 1은 하나의 레코드가 업데이트되었음을 ​​의미합니다. $ a = 0은 아무것도 업데이트하지 않았 음을 의미합니다. 양식에서 아무 것도 변경되지 않으면 0을 얻을 수 있습니다. 하지만 오류가 있으면 0을 얻을 수 있다고 가정합니다.

사용자에게 아무 것도 변경하지 않았거나 실제 오류가 있었기 때문에 정보가 업데이트되지 않았 음을 알리고 싶습니다.

오류가 0을 반환하거나 -1을 반환합니다.

이 오류를 확인하기 위해 오류를 생성하려고 시도 할 때 매력적이지 않고 솔직히 오히려 유용하지 않은 Zend 오류가 발생합니다.

답변

1

서버 오류 또는 잘못된 쿼리 또는 잘못된 데이터로 인해 쿼리가 실패한 경우 반환 값이 아니라 예외가 발생합니다. 원하는대로하려면 다음과 같이 할 수 있습니다.

try { 
    $a = $this->db->insert(self::TABLE, $saveData); 

    if ($a == 0) { 
     // return no data was updated 
    } else { 
     // return data was updated 
    } 
} catch(Zend_Exception $ex) { 
    // query did NOT execute successfully 
    // call $ex->getMessage() for the actual error 
    // return failure result 
}