So implementieren Sie den Batch-Upload von Daten in die Datenbank in PHP

墨辰丷
Freigeben: 2023-03-27 09:14:01
Original
3847 Leute haben es durchsucht

Der folgende Editor zeigt Ihnen einen Fall des Batch-Uploads von Daten in die Datenbank (.csv-Format) in PHP. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Kommen Sie und schauen Sie sich den Editor an

Freundliche Erinnerung: Das Dokument zum Hochladen von Daten muss in ein Dokument im CSV-Format konvertiert werden

Front-End-Code:

<form name="importForm" action="import.php" method="POST" enctype="multipart/form-data"> 
<input type="hidden" value="import_goods" name="file"> 
  <table cellpadding="2" cellspacing="1" class="tb"> 
    <tbody> 
    <tr> 
      <td width="200">选择批量上传文档:</td> 
      <td><input type="file" name="upfilename" id="upfilename" value=""></td> 
    </tr> 
    <tr> 
      <td colspan="2"> 
        <input type="submit" name="submit" value="提交" class="btn"> 
      </td> 
    </tr> 
    </tbody> 
  </table> 
</form>
Nach dem Login kopieren

Backend-Code: import.php-Datei (nur der Hauptcode wird eingefügt Hier muss die spezifische Implementierungsmethode selbst abgeschlossen werden)

if(isset($_POST[&#39;submit&#39;])){ 
      stripos(PHP_OS, "WIN") !== false ? setlocale(LC_ALL, &#39;&#39;) : setlocale(LC_ALL,&#39;zh_CN.GBK&#39;); 
       
      $fext = substr($_FILES[&#39;upfilename&#39;][&#39;name&#39;], strrpos($_FILES[&#39;upfilename&#39;][&#39;name&#39;], &#39;.&#39;) + 1); 
      if ($fext != &#39;csv&#39;) { 
        die(&#39;请上传csv格式的文件&#39;,HTTP_REFERER); 
      } 
      $handle = @fopen($_FILES[&#39;upfilename&#39;][&#39;tmp_name&#39;], "rb"); 
   
      $i = 0; 
      $import_type = &#39;&#39;; 
      if ($handle) 
      { 
        while($line_data = fgetcsv($handle, 4096, &#39;,&#39;)) 
        { 
          if ($i == 0) { 
            $import_type = trim($line_data[0]); 
            $i = 1; 
          } elseif (intval($line_data[0])) { 
            $line_list[] = $line_data; 
          } 
        } 
      } 
      //循环转换数据格式 
      foreach ($line_list as $i=> $v) 
      { 
        foreach ($v as $j=> $value) 
        { 
          $line_list[$i][$j] = iconv(&#39;GBK&#39;, &#39;UTF-8//IGNORE&#39;,$line_list[$i][$j]); 
        } 
      }//编码转换 
       
      fclose($handle); 
 
      if(!empty($line_list)) 
      { 
        // 登记号 
        $sn = array(); 
        $top_catid = 0; 
        $name = &#39;&#39;; 
        $func_name = &#39;&#39;; 
        switch ($import_type) { 
          case &#39;patent&#39;; 
          $top_catid = 5; 
          $name = &#39;专利申请号&#39;; 
          $func_name = &#39;deal_import_patent&#39;; 
          break; 
          case &#39;trademark&#39;; 
          $top_catid = 4; 
          $name = &#39;商标注册号&#39;; 
          $func_name = &#39;deal_import_trademark&#39;; 
          break; 
          case &#39;copyright&#39;; 
          $top_catid = 2185; 
          $name = &#39;登记号&#39;; 
          $func_name = &#39;deal_import_copyright&#39;; 
          break; 
          default: 
            die(&#39;上传文档未明确指定知产类型!&#39;); 
          break; 
        } 
        if ($import_type == &#39;patent&#39;) { 
          foreach($line_list as $lkey => $lval) { 
            $lval[2] = trim($lval[2]); 
            if ($lval[2] == &#39;专利技术&#39;) { 
              // 技术专利 
              if(!empty($lval[1])) { 
                if(in_array($lval[1],$sn)) 
                { 
                  die(&#39;列表中序号为&#39;.$lval[0].&#39;的知产的&#39;.$name.$lval[1].&#39;与前面的出现重复!&#39;);//判断是否有重复的数据(根据自己所需判断) 
                } 
                $sn[] = trim($lval[1]); 
              } else { 
                die(&#39;列表中序号为&#39;.$lval[0].&#39;的知产的&#39;.$name.&#39;为空!&#39;); 
              } 
            } else { 
              // 非技术专利 
              $line_list[$lkey][1] = &#39;&#39;; 
            } 
          } 
        } elseif ($import_type == &#39;trademark&#39;) { 
          foreach($line_list as $lkey => $lval) { 
            if(!empty($lval[1])) { 
              if(in_array($lval[1],$sn)) 
              { 
                die(&#39;列表中序号为&#39;.$lval[0].&#39;的知产的&#39;.$name.&#39;与前面的出现重复!&#39;); 
              } 
              $sn[] = $lval[1]; 
            } else { 
              die(&#39;列表中序号为&#39;.$lval[0].&#39;的知产的&#39;.$name.&#39;为空!&#39;); 
            } 
          } 
        } 
        if (!empty($sn)) { 
          $sql = &#39;SELECT serial_number FROM &#39; .$table_name. &#39; WHERE top_catid = &#39;.$top_catid.&#39; AND serial_number IN (\&#39;&#39; .implode("&#39;,&#39;", $sn). &#39;\&#39;)&#39;; 
          $result = $goods_db->query($sql); 
          $r = $goods_db->fetch_array(); 
          $exist = array(); 
          foreach ($r as $k=>$v){ 
            $exist[] = $v[&#39;serial_number&#39;]; 
          } 
           
          if (!empty($exist)) die($name.&#39;为:&#39;.implode(&#39;,&#39;,$exist).&#39;的知产已存在&#39;);//数据库中是否有相同的数据(根据自己所需判断) 
        }     
        // 调用处理函数 
        self::$func_name($line_list);//此时$line_list即为你上传文档的数据,数组格式,根据自己所需将数据导入数据库 
        die(&#39;批量导入完成!&#39;); 
      } 
       
    }
Nach dem Login kopieren

Das Format der .csv-Datei ist:

Verwandte Empfehlungen:

thinkPHP5-Framework integriert Plupload zur Implementierung von Bildern Batch-Upload

Thinkphp5+PHPExcel implementiert Batch-UploadTabellendatenfunktion

jQuery.Uploadify-Plug-in implementiert FortschrittsbalkenBatch-UploadBildfunktion

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Batch-Upload von Daten in die Datenbank in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage