내가 삽입되기 전에 뭔가 고유한지 알아야 할 때. 나는 보통 그것을 삽입하려고 시도하고 실패 할 경우 mysql_errno()가 1062인지 확인한다. 만약 그것이 중복 키로 실패했다면 나는 무엇을해야 할지를 알 수있다.mysql 누락 이중 키 오류
가장 일반적인 장소는 사용자 테이블입니다. 이메일을 로그인 용 "사용자 이름"만큼 고유하게 설정했습니다. 등록 양식을 처리 할 때 고유성을 검사하기 위해 추가 쿼리를 실행하는 대신 쿼리를 컴파일하고 실행 한 다음 1062 오류 번호를 확인합니다. 그것은 1062와 함께 실패하면 전자 메일이 등록되어 있고 모두 좋다는 것을 사용자에게 알린다.
그러나 최근에 나는 자신과 다른 개발자에게 쿼리 시간, 시스템의 모든 SQL 쿼리에 대한 로그 액세스를 제공하는 매우 기본적인 MITM SQL 쿼리 함수를 설정했으며, 가장 중요한 것은 함수 (연결 식별자를 수동으로 전달할 필요없이) 필요에 따라 올바른 데이터베이스에 mysql 연결을 설정합니다.
SQL 오류 쿼리 로그에서이 함수는 디스크에 모든 내 중복 항목을 만듭니다. 이것은 분명히 오류를 보는 다른 사람들에게 잘 보이지 않습니다 (처리하고 예상 했음에도 불구하고). 어떻게 든 오류를 보완하는 방법이 있습니까? 그렇지만 여전히 mysql_errno()를 확인할 수 있습니까?
테이블에서 키를 검색하지 않고 왜 발견되면 중복으로 계산합니까? 따라서 오류가 발생하지 않으며이를 억제 할 필요가 없습니다. – Nobody
추가 mysql 쿼리 및 추가 코드 때문입니다. 이메일에서 지정된 사용자 이름으로 사용자 이름을 변경하면 어떻게됩니까? 나는 그 고유 키를 인식 할 필요가있는 곳에 코드를 수정해야 할 것이다. 성능 현명한 나는 그것이 단지 몇 밀리 초에 의해 도움이 상상하지만, 내 쿼리 카운트를 가능한 한 낮게 유지 싶습니다. – Lee
당신은 일을 기록하는 함수를 만들었고, 너무 많이 로깅한다고 불평하고 있습니까? 그것은 당신의 기능입니다 ... "관련성이없는"오류를 기록하지 않도록 수정할 수 있습니까? –