首页 >后端开发 >php教程 > 正文

php 逐行读取csv数据入库

原创2018-04-16 16:06:390638
需求:把从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读取数据的基本操作

php读取本地json文件的实例分享

PHP进行读取CSV文件数据和生成CSV文件

以上就是php 逐行读取csv数据入库的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php 入库 数据
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息
    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类