【问题标题】:PHP CSV file import does not import data if there's empty value如果有空值,PHP CSV 文件导入不会导入数据
【发布时间】:2013-03-27 12:45:25
【问题描述】:

我这里有这段代码,如果行前有逗号,它不会导入数据。这意味着该列中有一个空值,但我的代码无法识别它,因此根本不导入任何数据。 任何想法我该如何解决? 提前致谢!

    <?php
include "config.php";

if ($_FILES[csv][size] > 0) { 

    $file = $_FILES[csv][tmp_name]; 
    $handle = fopen($file,"r"); 

    do { 
        if ($data[0]) { 
            mysql_query("INSERT INTO norse5_proov (osakond, soetusaasta, it_number, tooteruhm, mudeli_nimetus, sn, riigivara_nr, inventaari_nr, maja, ruum, vastutaja, markus, kasutajanimi) VALUES 
                ( 
                    '".addslashes($data[0])."', 
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."',
                    '".addslashes($data[3])."',
                    '".addslashes($data[4])."',
                    '".addslashes($data[5])."',
                    '".addslashes($data[6])."',
                    '".addslashes($data[7])."',
                    '".addslashes($data[8])."',
                    '".addslashes($data[9])."',
                    '".addslashes($data[10])."',
                    '".addslashes($data[11])."',
                    '".addslashes($_SESSION['user'])."'
                ) 
            ") or die(mysql_error()); 
        } 
    } while ($data = fgetcsv($handle,1000,",","'")); 

    header('Location:insert.php?success=1'); die; 

} 

?> 

【问题讨论】:

    标签: php html file csv import


    【解决方案1】:

    你需要改变

    if ($data[0]) { 
    

     if (!empty($data)) {
    

    基本上,它现在做的是检查第一列是否有数据,如果没有则忽略该行,如果将其更改为建议的,它将检查整个是否有数据行,如果有则将其导入,否则将跳过。

    【讨论】:

      【解决方案2】:

      如果您必须首先检查您的条件,请不要使用 do while 循环,而是使用普通的 while 循环。这样您就不必检查您的数据了!

      while ($data = fgetcsv($handle,1000,",","'")) 
      {  
          mysql_query("INSERT INTO norse5_proov (osakond, soetusaasta, it_number, tooteruhm, mudeli_nimetus, sn, riigivara_nr, inventaari_nr, maja, ruum, vastutaja, markus, kasutajanimi) VALUES 
            ( 
            '".addslashes($data[0])."', 
            '".addslashes($data[1])."',
            '".addslashes($data[2])."',
            '".addslashes($data[3])."',
            '".addslashes($data[4])."',
            '".addslashes($data[5])."',
            '".addslashes($data[6])."',
            '".addslashes($data[7])."',
            '".addslashes($data[8])."',
            '".addslashes($data[9])."',
            '".addslashes($data[10])."',
            '".addslashes($data[11])."',
            '".addslashes($_SESSION['user'])."'
            ) 
          ") or die(mysql_error()); 
      } 
      

      【讨论】:

        猜你喜欢
        • 2020-09-12
        • 1970-01-01
        • 2012-03-06
        • 2010-11-15
        • 1970-01-01
        • 2014-02-23
        • 2015-06-30
        • 2017-04-06
        相关资源
        最近更新 更多