解决方案如下:
// 判断文件是否上传成功 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数据入库的详细内容,更多请关注php中文网其它相关文章!
![php中文网最新课程二维码](/static/images/article_wechat2021.jpg?1111)
声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论