2
젠드와 함께 일하고 있는데 DB에있는 행이 이미 존재하는지 (내가 얻었던 중복 키 오류를 제거하는 간단한 솔루션) 있는지 확인해야했습니다. 내가해야한다면 내가 몇 가지를 시도했지만 아무것도 코드 다음 db_row가 있는지 확인하는 올바른 방법입니까?
그래서 내가 쓴합니다 ( Zend_Validate_Db_NoRecordExists에게 예를 들어 방법) ... 일 것 같았다이 그것을 할 수있는 유효한 방법이 있는지 궁금했다, 또는 다른 일을 : 모델에서:
$where = $condition = array(
'user_id = ' . $user_id,
'page_id = ' . $page_id
);
$check = $this->fetchRow($where);
if(count($check) > 0) {
return null;
}else{
// Here I create a new row, fill it with data, save and return it.
}
및 다음 내보기 :
if($this->result != null) { /* do stuff */ }else{ /* do other stuff */ }
이 작업을 수행하지만 (때문에 추가 질의의, 대만족) 시간이 더 걸릴 것으로 보인다 않으며 나는이 고수할지 여부를 좀 확실 해요 ..
상관 추천
아를 할 수있는 컨트롤러
보기에에서 함수를 코딩 한! 행을 찾지 못하면 fetch 메소드가 자동으로 null을 반환한다는 것을 잊었습니다. 새로운 데이터를 삽입하기 위해 사용하는 방법은'$ row = $ this-> createRow' 그리고'if ($ row) {$ row-> user_id = $ user_id .. etc.'입니다. – Cooleronie
하지만! wait .. now $ row는 항상 값으로 반환됩니다. 행이 이미 존재하는 경우 NULL을 반환해야합니다. ** 그것이 내 관점에서 알아야 할 것이기 때문에 ** 존재합니다! {else {return null}을 추가했습니다. 매력처럼 작동합니다. – Cooleronie
@Cooleronie이 (가) 내 ans을 업데이트했습니다. –