一次性导入20万+的excel数据(转载记录)

 

<?php
class Add
{
    public function data()
    {
        ini_set('memory_limit', '-1');  //PHP内存设置
        $handle=fopen("201501.csv","r");
        $fileName="201501.csv";
        //将文件一次性全部读出来
        $excelData = array();
        $content = trim(file_get_contents($fileName));
        $excelData = explode("\n",$content);

        $chunkData = array_chunk($excelData , 500); //批量插入500条数据
        $count = count($chunkData);
        for ($i = 0; $i < $count; $i++) {
            $insertRows = array();
            foreach($chunkData[$i] as $value){
                $string = mb_convert_encoding(trim(strip_tags($value)), 'utf-8', 'utf-8');//转码
                $v = explode(',', trim($string));
                $v = str_replace("'", " ", $v);
                $v = str_replace(" ", "", $v);
                $sqlString       = '('."'".implode( "','", $v  ) . "'".')'; //批量
                $insertRows[]    = $sqlString;
            }
             //var_dump($insertRows);
            // $sql=$insertRows[0];
            // echo $sql;
            $result = $this->add($insertRows); //批量将sql插入数据库。
        }
    }

    public function add($insertRows)
    {
        set_time_limit(0);
        $pdo= new PDO("mysql:host=xxxxxx;dbname=xxx",'root','xxx');

        // //采取批量插入
        $data = implode(',', $insertRows);
        $sql = "INSERT into `bsy_201501`(id,sid,oid,nickname,tel,phone,contacts,province,city,area,address,link1,link2,omoney,gname,gsign,gnum,onum,gpaymoney,gtotalmoney,gsinglemoney)
                    VALUES {$data}";
        // var_dump($sql);die;
        $result = $pdo->query($sql);
    }

}
$model = new Add();
$model->data();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值