PHP 导入EXCEL

本文介绍了一个PHP函数,用于从CSV文件中导入品牌数据到数据库。该过程包括读取CSV文件的内容、验证数据并将其存储在数据库中。文章详细展示了如何处理文件上传、字符编码转换及数据库交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     public function brandImportFile()
    {
      if(IS_POST)
      {
        $filename = $_FILES['file']['tmp_name'];
        if(empty($filename))
        {
          $this->returnInfo(0,'请选择要导入的CSV文件');
        }
        $handle = fopen($filename, 'r');
        $arr = [];
        //循环取出文件中数据
        while($data = fgetcsv($handle))
        {
          $arr[] = $data;
        }
        $count = count($arr);
        if($count==0)
        {
          $this->returnInfo(0, '文件中没有任何数据!');
        }
       
         
        foreach($arr as $k => $v)
        {

          if($k==0)
          {
            $title = iconv('gbk','utf-8',$v['0']);
          
            if($title!='品牌')
            {
              $this->returnInfo(0, '导入文件失败,请检查后重试。');
            }
            continue;
          }

          $brand_name = iconv('gbk','utf-8',$v['0']);
          // 事务开始
          $model = new Model();
          $model->startTrans();
          $addbrand = true;
          
          
          if(empty($brand_name))
          {
            $this->returnInfo(0, '器材品牌不能为空');
          }
          
          unset($map);
          $map['name'] = $brand_name;
          $map['state'] = 1;
          $brandname = M('db_equipment_brand')->where($map)->find();
          if ($brandname) {
                $this->returnInfo(0, '该品牌已存在,请检查后重试');
          }

          $data['name'] = $brand_name;
          $data['state'] = 1;
          $data['create_time'] = date("Y-m-d H:i:s",time());
          $addbrand = M('db_equipment_brand')->add($data);
        
            if ($addbrand) {
                        continue;
            }else{  
                   $model->rollback();
                   $this->returnInfo(0, '导入失败');
            }
        }
          if($addbrand)
          {
            $model->commit();
            $this->returnInfo(1, '导入成功');
          }else{  
                 $model->rollback();
                 $this->returnInfo(0, '导入失败');
          }
      }
      $this->returnInfo(0,'请求错误');
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值