현재 모델에서 ORM에 대해 RedBean을 사용하고 있습니다.ORM (RedBean) 및 중복 키
열 중 하나가 고유하게 설정된 MySQL 테이블에 데이터를 삽입해야합니다.
현재 데이터는 그래서 같은 양식을 통해 삽입 : $ 이름이 데이터베이스에 복제되지 않은 경우
는//Create
$object = R::dispense('object');
//Need to check if supplied name is a duplicate
$object->name = $name
$object->description = $description
//Save
R::store($object)
지금 문제는, 모든 것이 순조롭게 진행된다. 그것은이 중복되는 경우 나 예외를 잡을 수 있고, SQL 오류 코드 얻을 : 나는 예외를 에코 경우 23000
를, 내가 얻을 :
[23000] - SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'abc' for key 'name_UNIQUE'
또 다른 문제는 내가 여러 필드가있는 경우있는 것입니다 UNIQUE로 설정하면 예외는 복제 된 첫 번째 필드 만 알려줍니다. 따라서 다음 필드를 가져 오려면 사용자가 첫 번째 복제본을 수정하고 쿼리를 다시 실행해야합니다.
이것은 매우 비효율적 인 것처럼 보입니다. 너무 많은 SQL 문을 실행하지 않고 사용자가 여러 필드에 중복 데이터를 삽입했는지 확인할 수 있어야합니다.
이렇게하는 것이 가장 좋은 방법은 무엇입니까? 또한 액션이 성공했는지, 실패한 경우, 컨트롤러가 왜 그리고 어떤 필드로 돌아 왔는지를 반환하는 것이 가장 좋은 방법일까요?
는 :) 감사