Column count doesn't match value count at row 2 PHP導入excel報錯

Column count doesn't match value count at row 2

這個錯的意思呢,就是sql的列與值不匹配,就像這樣 

insert into table(column1,column2,column3) values(1,2)

我是在導入數據的時候出現這個錯誤的,那麼原因是什麼呢,

有的數據是在excel表的值是空白的,導入後讀取的數據卻是不存在的,那麼這種情況下,對數據做好缺省是很好的解決辦法

下面上代碼 :

    /**
     * Notes: 先上傳,後將文件處理
     * User: Administrator
     * Date: 2019-08-20 14:46
     */
    public function import(){

        if(IS_POST){
            vendor("PHPExcel.PHPExcel"); //

            $upload = new \Think\Upload();// 實例化上傳類
            $upload->maxSize   =     3145728 ;// 設置附件上傳大小
            $upload->exts      =     array('xls','xlsx');// 設置附件上傳類型
            $upload->rootPath  =     './Uploads/'; // 設置附件上傳根目錄
            $upload->savePath  =     ''; // 設置附件上傳(子)目錄
            // 上傳文件
            $info   =   $upload->upload();
            if(!$info) {// 上傳錯誤提示錯誤信息
                $this->error($upload->getError());
            }else{// 上傳成功
                //上傳文件的地址
                $file_name =  $upload->rootPath.
                $info['import']['savepath'].$info['import']['savename']; 
                $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
                 //加載文件內容,編碼utf-8
                $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); 

                $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //轉換爲數組格式

                array_shift($excel_array);  //刪除第一個數組(標題);

                //數據處理
                foreach($excel_array as $k=>$v) {

                    $data[$k]['id']         = $v[0];//id
                    $data[$k]['store_name'] = $v[1];//門店名稱
                    $data[$k]['machine_code']   = $v[2]?:"";//機器碼

                    $data[$k]['tel'] = $v[3]?:"";//前臺電話
                    $data[$k]['contact']   = $v[4]?:"";//聯繫人
                    $data[$k]['contact_phone']   = $v[5]?:"";//聯繫人

                    //軟件版本
                    switch ($v[6]){
                        case '房間版':
                            $reg_version = 1;
                            break;
                        case '房間尊享版':
                            $reg_version = 1;
                            break;
                        case '房間標準版':
                            $reg_version = 2;
                            break;
                        case '房間基礎版':
                            $reg_version = 3;
                            break;
                        case '手牌版':
                            $reg_version = 4;
                            break;
                        case '手牌尊享版':
                            $reg_version = 4;
                            break;
                        case '手牌標準版':
                            $reg_version = 5;
                            break;
                        case '手牌基礎版':
                            $reg_version = 6;
                            break;

                    }
                    $data[$k]['reg_version']  = $reg_version;
                    $data[$k]['nodeid']  = $v[7]?:"";
                    $data[$k]['is_qly']  = $v[8]=='已開通'?1:0;
                    $data[$k]['is_sms']  = $v[9]=='已開通'?1:0;
                    $data[$k]['is_kywy']  = $v[10]=='已開通'?1:0;
                    $data[$k]['is_autoback']  = $v[12]=='已開通'?1:0;
                    $dfm = explode('/',$v[13]);
                    if($dfm[2]){
                        $expired_date = $dfm[2]."-".$dfm[0].'-'.$dfm[1];
                    }
                    $expired_date= $expired_date?:$v[13];
                    $data[$k]['expired_date']  = $expired_date?:'';
                    $data[$k]['create_time']  = time();
                    $expired_date='';

                }
                
                //插入數據
                try{
                    $success=M('Reginfo')->addAll($data);
                    if($success){
                        $this->success('上傳成功!');
                    }else{
                        $this->success('失敗!');
                    }
                }catch (\Exception $e){
                    $this->success($e->getMessage());
                }

            }
        }

        $this->display();
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章