사용자 등록을 처리하는 클래스가 있습니다. 두 가지 주요 단계가 있습니다 : 사용자를 mysql 테이블에 삽입 한 다음 삽입이 성공하면 확인 전자 메일을 보냅니다.PHP 및 MySQL 용 쿼리/임시 테이블 캐싱
내가 할 수있는 방법이 있나 ... 일종의 캐시로 전자 메일 보내기 기능이 실패하면 데이터가 삽입되지 않도록하는 첫 번째 단계입니까?
sendmail이 서버에서 활성화되어 있는지 확인하고, 그렇지 않은 경우 쿼리를 수행하지 않을 수도 있습니다. 나는 이것이 대부분의 시간에 효과가있을 것이라고 생각하지만 센드 메일이 활성화되어 있지만 전자 메일을 보내는 데 약간의 오류가있는 경우를 파악하고 싶습니다.
비록 임시 테이블에 모든 데이터를 삽입하고, 메일이 성공적으로 영구 테이블에 행을 복사 보낼 수 있습니다. 이 문제는 데이터를 삽입하는 저장 프로 시저를 호출하고 메일 코드가 응용 프로그램 코드에서 발생하므로 삽입이 완료되면 임시 테이블이 자동 수정 될 것입니다 (올바른 것인가?).
저는 실제로이 문제를 해결할 생각이 없습니다. sendmail이 작동하는지 이미 확인했다면'mail' 호출은 실패 할 수 없습니다. 메일을 배달하거나 반송 할 수 없거나 주소가 실제 서버 또는 그와 비슷한 것을 가리 키지 않으면 ... 메일 호출은 계속 성공할 것이며 메일 서버 만 PHP가 아니라 그 메일을 알고 있습니다. . –
아직도 무언가를하고 싶다면 지나치게 복잡해질 것입니다. mysql_query ("DELETE FROM table WHERE id = LAST_INSERT_ID()"); ... ... 또는이 시점에서 커밋하는 대신 트랜잭션과 롤백을 사용하십시오. –