2013-05-21 2 views
1

CakePHP를 사용하여 MySQL 테이블에 데이터를 삽입하는 데 문제가 있습니다. 한 번 행이 삽입되면 덮어 쓸 수 없어야하는 테이블을 만들고 있습니다. CakePHP의 save 메소드를 사용하면 같은 기본 키이지만 다른 정보를 입력하려고하면 오류를 반환하는 대신 해당 항목을 업데이트합니다. 모델의 id를 설정 해제하려고 시도했지만 호출 전에 Model-> create()를 시도했지만 여전히 데이터를 덮어 씁니다.CakePHP 삽입 문

또한 Model-> query() 메서드를 대신 사용해 보았지만 오류가 있는지 제대로 확인하지 못했습니다. 삽입하고 싶지만 이미 ID가 찍혔다면 오류 메시지를 반환하므로 시도해 보았습니다.

$insertQuery = ("INSERT INTO `students` VALUES ('{$id}', '{$lastname}', '{$firstname}', '')"); 
$this->Student->query($insertQuery) or die("error" .mysql_error()); 

그러나 query 명령은 진리 값이 아닌 배열을 반환하므로 매번 die를 호출합니다. 누군가가 줄 수있는 조언을 해주시면 감사하겠습니다.

+2

a) cakephp 버전 b) 문서 및 자습서를 읽었습니까? 그것은 누군가가 그것을 어떻게 할 것인지에 관한 것이 아닙니다. save() 함수를 사용하여 wrapper 메소드를 문서화 된대로 사용하십시오. – mark

답변

0

테이블의 ID는 기본 키로 지정해야하며 IDENTITY 여야합니다.

CakePHP에서는 데이터를 제출하기 위해 만든 양식에 ID를 지정하지 않으면 동일한 값을 사용하여 다른 레코드가 만들어집니다.

그러나 모델을 수정하여 ID가 ​​필요하지 않은지 확인해야합니다.