요구사항: Excel 파일에서 내보낸 csv 데이터를 데이터베이스로 가져옵니다.
해결 방법은 다음과 같습니다.
// 判断文件是否上传成功 if (empty($_FILES['file1']) && $_FILES['file1']['error'] != 0) { return 'Error file1'; } else { $filename = $_FILES['file1']['tmp_name']; } // 组装数据 $fields = ['name', 'age', 'telephone']; $fields_cnt = count($fields); // 用二进制打开文件,避免编码问题 $fp_in = @fopen($filename, "rb"); while (!feof($fp_in)) { $line = fgets($fp_in); if ($line) { $arr = explode(',', $line); // 待插入数据格式化 $fmt = array_map(function ($v) {return ($v == 0) ? $v : ((int) $v);}, $arr); $data[] = array_combine($fields, array_splice($fmt, 1, $fields_cnt)); } } fclose($fp_in); // TP数据批量入库 $q = M("excel_1")->addAll($data);
요약:
파일 연산 함수 계열: fopen,feof,fgets,fclose open, find 끝, 행을 가져오고 닫습니다
데이터 형식화의 의미: 데이터베이스 A의 내보낸 데이터로서 정수 + "의 데이터가 있습니다. 형식화하면 자동으로 " 기호
array_combine 키-값 병합 배열을 제거할 수 있습니다.
관련 권장 사항:
CSV 파일 데이터를 읽고 CSV 파일을 생성하는 PHP
위 내용은 PHP는 csv 데이터를 한 줄씩 데이터베이스로 읽습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!