要件: 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 データを 1 行ずつデータベースに読み込みますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。