本文主要是介绍php 逐行读取csv数据入库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求:把从Execel文件中导出的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 分别打开,寻末,取行,关闭
数据格式化的意义:作为A数据库的导出数据,会有整形+“ 的数据,格式化可以自动 去掉"符号
array_combine键值合并数组。
这篇关于php 逐行读取csv数据入库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!