PHP를 사용하여 CSV 파일을 MySQL 데이터베이스로 가져 오는 경우 종종 일부 데이터 형식 문제, 중복 키, 데이터 자료 및 기타 경고가 발생합니다. 이러한 경고는 수입 실패를 직접 유발하지는 않지만 데이터의 무결성과 정확성에 영향을 미칩니다. 가져 오기 프로세스 중에 발생하는 잠재적 인 문제를 정확하게 파악하기 위해 MySQLI :: get_warnings 기능은 가져 오기 프로세스 문제 해결 및 최적화를위한 중요한 도구가되었습니다.
mysqli :: get_warnings는 PHP의 MySQLI 클래스에서 최신 데이터베이스 작업에서 생성 된 경고 정보를 얻는 데 사용되는 메소드입니다. 데이터 절단, 외래 키 제약 조건 실패 등과 같은 데이터베이스 실행 중에 생성 된 경고를 읽고 분석 할 수있는 일련의 경고 객체를 반환합니다.
CSV 가져 오기 시나리오에서 이러한 경고 메시지는 문제 행을 찾고 CSV 파일 또는 데이터베이스 구조를 제 시간에 조정하며 데이터 예외를 피할 수 있습니다.
CSV 파일의 내용을 읽으십시오.
각 데이터 행을 구문 분석합니다.
삽입 또는 로드 데이터를 사용하여 데이터베이스에 데이터를 작성하십시오.
실행 중에 경고를 받으려면 mysqli :: get_warnings 에 전화하십시오.
경고 결과에 따라 해당 처리 또는 로그를 수행하십시오.
다음 예는 PHP 로 CSV를 가져오고 Get_warnings를 사용하여 PHP를 사용하여 경고를받는 방법을 보여줍니다.
<?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
if ($mysqli->connect_errno) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
$csvFile = fopen("data.csv", "r");
if (!$csvFile) {
die("열 수 없습니다 CSV 문서");
}
$lineNumber = 0;
while (($data = fgetcsv($csvFile)) !== false) {
$lineNumber++;
// 가정 CSV 세 개의 열이 있습니다: id, name, email
$id = $mysqli->real_escape_string($data[0]);
$name = $mysqli->real_escape_string($data[1]);
$email = $mysqli->real_escape_string($data[2]);
$sql = "INSERT INTO users (id, name, email) VALUES ('$id', '$name', '$email')";
if (!$mysqli->query($sql)) {
echo "1. $lineNumber 라인 삽입이 실패했습니다: " . $mysqli->error . "\n";
} else {
// 경고 정보를 얻으십시오
if ($mysqli->warning_count > 0) {
$warning = $mysqli->get_warnings();
while ($warning) {
echo "1. $lineNumber 경고: ({$warning->errno}) {$warning->message}\n";
$warning = $warning->next();
}
}
}
}
fclose($csvFile);
$mysqli->close();
?>
열에 대해 데이터가 잘립니다
이는 가져온 데이터 길이가 필드 길이를 초과하여 데이터가 잘릴 수 있음을 나타냅니다. CSV의 해당 필드 길이 또는 데이터베이스 필드 유형이 합리적인지 확인하는 것이 좋습니다.
중복 항목
가져온 데이터는 고유성 제약을 위반하며 기본 키 또는 고유 인덱스 충돌 일 수 있습니다. 중복 데이터를 확인하고 처리해야합니다.
잘못된 DateTime 값
날짜 시간 형식이 잘못되어 삽입 실패 또는 예외가 발생합니다. CSV에서 해당 필드 형식을 확인하여 MySQL 요구 사항을 준수하는지 확인하십시오.
mysqli :: get_warnings를 사용하면 CSV를 가져 오는 동안 실시간으로 잠재적 경고 정보를 캡처하고 출력하여보다 자세한 오류 진단 및 데이터 품질 관리를 달성 할 수 있습니다. 이는 데이터 가져 오기의 안정성을 향상시킬뿐만 아니라 후속 데이터 정리 및 수정을 용이하게합니다.
이러한 경고를 올바르게 처리함으로써 수입 데이터의 무결성과 정확성을 보장하는 것이 시스템 데이터의 신뢰성을 향상시키는 핵심 단계입니다.