개발 Q&A

제목 datamapper dmz 를 사용중인데 자꾸 무슨 오류인지 모르겠어요 ㅠㅠ
글쓴이 헤덥 작성시각 2014/08/12 16:14:22
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 15588   RSS
// Get user foo
$u = new User();
$u->where('username', 'foo')->get();

// Change the email
$u->email = "baz@qux.com";

// Save changes to existing user
$u->save();

위에 코드는 메뉴얼에 나와있는 코드인데 
가져온 로우가 있을시 save() 하면 업데이트가 되고 
없을때엔 인서트가 되는 방식이던데요 

제가짠 코드도 위와 같은 방식으로 테스트 중인데 
update 가 되질않고 insert 가 되네요 
그래서 있는 로우라고 에러가 뜹니다..

        $u = new Members();
        $u->where('SEQ', 1)->get();
        
        // Change the email
        $u->NAME = $this->input->post('name', TRUE);
        
        // Save changes to existing user
        $u->save();

이게 제코드고 

Error Number: 1062

Duplicate entry '1' for key 'PRIMARY'

INSERT INTO `members` (어쩌구) VALUES (저쩌구)

Filename: C:\MAMP\htdocs\my\system\database\DB_driver.php

Line Number: 330

이게 에러화면입니다.
도저히 방법을 모르겠네요
코드이그나이터 버전문제인가 2.2.0으로 테스트 중이고 
디비 삽입은 잘되더군요 도저히 방법을 모르겠어요 ㅠ
 다음글 검색 및 자동완성 구현질문.. (4)
 이전글 부트스트랩 사용하시는 분들은 웹브라우저 어디까지 지원하... (1)

댓글

한대승(불의회상) / 2014/08/12 16:59:53 / 추천 0
컬럼명을 보니 DB가 오라클일것 같은데요.
DB가 오라클이라면 작동하지 않는것 같습니다.
Data mapper 메뉴얼을 확인해 보세요.
헤덥 / 2014/08/12 17:03:23 / 추천 0
오라클아닙니다 mysql 이에여 컬럼명을 저렇게 사용한거에요
헤덥 / 2014/08/12 17:10:22 / 추천 0
save() 전까지는 값도 잘 불러오고 

수정시킬 값도 뿌려봐도 이상이 없고요

save() 가 insert 쿼리문으로 날려버리니 컬럼이 수정이 되질않고 오류를 뿜어내네요

 

한대승(불의회상) / 2014/08/12 17:18:33 / 추천 0
datamapper 메뉴얼을 다시 한 번 잘 살펴 보시는게 좋을것 같습니다.

대충 살펴 봤는데 DB 테이블을 만들때 특별한 룰이 있는것 같군요.

http://datamapper.wanwizard.eu/pages/database.html
헤덥 / 2014/08/12 17:23:12 / 추천 0
으학 불의회상님 말씀듣고 혹시나 해서 프라이머리값을 id로바꾸니깐 먹히네요 아진짜 감사합니다
위에 링크도 한번 살펴봐야 되겠네요