데이터베이스(MySQL)가 프레임워크에서 예기치 않은 오류를 보고하는 것을 방지하는 방법은 무엇입니까?
예를 들어 여기에 두 개의 Excel 테이블 업로드 기능이 있습니다. 물론 두 곳에서 제가 작성한 Excel 수신 데이터 처리 방법은 다르지만 아시다시피 데이터베이스의 일부 필드 이름은 비워둘 수 없습니다. . 2개일 경우 로컬 엑셀 파일을 교대로 업로드하면 이때 아래와 같이 SQL 오류가 발생합니다.
수신된 각 필드 데이터에 대해 해당 데이터베이스 판단을 해야 한다면 너무 번거롭지 않을까요?
제 엑셀 표 업로드 기능은 1대1 방식인 한 가지 방식에만 해당됩니다. 내 엑셀 구조가 다르기 때문에 한 가지 방법은 한 가지 유형의 엑셀 구조 처리에 해당합니다.
그래서 페이지에 sql 오류가 나타나는 것을 차단할 수 있는 솔루션을 찾고 싶습니다. 조언 부탁드립니다.
데이터베이스(MySQL)가 프레임워크에서 예기치 않은 오류를 보고하는 것을 방지하는 방법은 무엇입니까?
예를 들어 여기에 두 개의 Excel 테이블 업로드 기능이 있습니다. 물론 두 곳에서 제가 작성한 Excel 수신 데이터 처리 방법은 다르지만 아시다시피 데이터베이스의 일부 필드 이름은 비워 둘 수 없습니다. . 2개일 경우 로컬 엑셀 파일을 교대로 업로드하면 이때 아래와 같이 SQL 오류가 발생합니다.
수신된 각 필드 데이터에 대해 해당 데이터베이스 판단을 해야 한다면 너무 번거롭지 않을까요?
제 엑셀 표 업로드 기능은 1대1 방식인 한 가지 방식에만 해당됩니다. 내 엑셀 구조가 다르기 때문에 한 가지 방법은 한 가지 유형의 엑셀 구조 처리에 해당합니다.
그래서 페이지에 sql 오류가 나타나는 것을 차단할 수 있는 솔루션을 찾고 싶습니다. 조언 부탁드립니다.
데이터베이스 오류를 차단할 수 없는 것은 아니지만 꼭 필요한 것도 아니며 더 많은 문제를 야기하게 됩니다. 특정 필드가 Null이 될 수 없다는 것은 당연한 일이기 때문에 굳이 꼭 적어야 한다면 나중에 처리할 때 이 자리에 오면 어떻게 해야 할까요? 이는 삽입을 수행하기 전에 데이터의 유효성을 확인하지 않았음을 알 수 있으며, 업로드된 데이터는 사용자가 입력한 데이터와 동일하므로 더티 데이터의 입력을 방지해야 합니다.
일반적인 처리 논리는 다음과 같습니다.
csv를 한 줄씩 읽고 확인 규칙을 사용하여 데이터를 확인합니다. 괜찮으면 $success에 저장되고, 그렇지 않으면 비즈니스 논리에 따라 $bad에 저장됩니다. $bad가 비어 있지 않으면 먼저 표시될 수 있습니다. 표시 목록에서는 사용자에게 불법 데이터 삭제를 확인하도록 요구하고 일부는 $success에서 데이터를 직접 탐색하여 삽입한 다음 어떤 것이 삽입되었고 어떤 것이 포함되었는지에 대한 보고서를 생성합니다. 처리되지 않았습니다.
여러 형식의 csv가 있기 때문에 현재 업로드된 csv가 처리 방법과 일치하는지 자연스럽게 확인해야 합니다. 그렇지 않으면 실제로 저장되면 어떻게 될까요? 게으른 것은 별로 추천하지 않습니다.
예외를 포착하려면 try {}catch(Exception $e){}를 사용하세요
프레임워크의 경우 디버그 모드를 끌 수 있어야 하며, 자동으로 차단할 수 있어야 합니다.
코드에서 빈 필드를 기본값으로 수동으로 설정하려면 필터를 직접 작성하면 필터가 비어 있는지 확인하고 비어 있는 경우 기본값을 제공합니다.
1. 데이터베이스 설계 중에 0과 같은 기본값을 정의할 수 있습니다. 2. 이 데이터를 프로그램에 삽입할 때 user_id 필드에 값이 있는지 확인합니다.
프로덕션에서 이 필드가 null이 허용되는 경우 테이블을 변경하세요
허용되지 않는 경우에는 데이터에 문제가 있다는 오류 메시지가 표시되며 무시하는 것은 위험합니다.
대충 무시하는 대신 소스 데이터가 null이 아닌지 확인해야 합니다.