PHP csv文件30w+數據導入mysql數據庫


<?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();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM