>  기사  >  백엔드 개발  >  PHP를 사용하여 CSV 데이터를 MySQL로 효율적으로 가져오고 문제를 해결할 수 있습니까?

PHP를 사용하여 CSV 데이터를 MySQL로 효율적으로 가져오고 문제를 해결할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-19 08:38:02403검색

How Can I Efficiently Import and Troubleshoot CSV Data into MySQL using PHP?

PHP/MySQL을 사용하여 CSV 데이터 가져오기: 문제 해결 및 최적화

이 문서에서는 PHP/MySQL을 사용하여 CSV 데이터를 MySQL로 가져오는 것과 관련된 문제 해결 및 최적화 문제를 다룹니다. PHP.

우려사항과 해결책:

1. 0으로 표시된 텍스트:

CSV 파일이 fgetcsv에 지정된 올바른 구분 기호를 사용하고 있는지 확인하세요. 데이터베이스의 "text" 열의 데이터 유형을 확인하십시오. 텍스트 형식으로 설정하지 않으면 가져온 데이터가 잘릴 수 있습니다.

2. 따옴표로 묶인 데이터:

CSV 파일의 데이터가 따옴표로 묶인 경우 enclosed_by 매개변수를 사용하여 fgetcsv에서 이를 지정할 수 있습니다. 이렇게 하면 가져온 데이터에서 따옴표가 제거됩니다.

3. 헤더 줄 무시:

헤더 줄을 무시하려면 데이터 가져오기를 시작하기 전에 fgets 함수를 사용하여 CSV 파일의 첫 번째 X 줄을 읽고 삭제합니다.

4. 데이터 형식 보존:

MySQL은 기본적으로 데이터 형식을 보존합니다. 소수 값은 데이터베이스로 가져온 후에도 소수로 유지됩니다.

5. 실행 시간 제한:

"최대 실행 시간 초과" 오류가 발생하는 경우 PHP 구성(php.ini)에서 max_execution_time 설정을 늘려보세요. 또는 가져오기 프로세스를 더 작은 배치로 나누어 서버의 로드를 줄이세요.

최적화:

LOAD DATA INFILE 기능 사용:

MySQL은 CSV 파일을 직접 가져올 수 있는 LOAD DATA INFILE 기능을 제공합니다. 루핑이나 파싱 없이 데이터베이스를 생성합니다. 이 방법은 PHP 루프를 사용하는 것보다 훨씬 빠릅니다.

LOAD DATA INFILE 사용 예:

<?php
$query = <<<EOF
    LOAD DATA INFILE '$fileName'
     INTO TABLE tableName
     FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\n'
    (field1,field2,field3,etc)
EOF;

$db->query($query);
?>

LOAD DATA INFILE을 활용하면 CSV 가져오기 프로세스를 간소화할 수 있습니다. , 성능을 향상시키고 리소스 소비를 줄입니다.

위 내용은 PHP를 사용하여 CSV 데이터를 MySQL로 효율적으로 가져오고 문제를 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.