【问题标题】:Notice: Undefined variable: csvFile inon line 160 ,Warning: fclose() expects parameter 1 to be resource, null given on line 160注意:未定义变量:第 160 行的 csvFile,警告:fclose() 期望参数 1 为资源,第 160 行给出 null
【发布时间】:2017-06-17 07:40:01
【问题描述】:

我正在尝试将 csv 文件上传到 php 网页中 允许我将数据插入/更新到 sql 数据库中。但是在我选择了我的 csv 文件并单击导入后,它显示了上面的错误,仍然是 PHP 的菜鸟
非常感谢您的任何帮助和建议!

<?php
  if(isset($_POST['importSubmit'])){
       $csvMimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain');
       if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'],$csvMimes)){
           if(is_uploaded_file($_FILES['file']['tmp_name'])){
               $csvFile = fopen($_FILES['file']['tmp_name'], 'r');
               fgetcsv($csvFile);
               while(($line = fgetcsv($csvFile)) !== FALSE){
               require_once('../../mysqlConnector/mysql_connect.php');
               $query="UPDATE communitysurvey SET  stationID = '".$line[0]."',userID= '{$_SESSION['username']}', question1 = '".$line[1]."', question2 = '".$line[2]."', question3 = '".$line[3]."', question4 = '".$line[4]."', question5 = '".$line[5]."', question6 = '".$line[6]."', question7 = '".$line[7]."', question8 = '".$line[8]."', question9 = '".$line[9]."',question10 = '".$line[10]."', question11 = '".$line[11]."', question12 = '".$line[12]."', question13 = '".$line[13]."', question14 = '".$line[14]."',question15 = '".$line[15]."', question16 = '".$line[16]."', question17 = '".$line[17]."', question18 = '".$line[18]."', question19 = '".$line[19]."',question20 = '".$line[20]."', question21 = '".$line[21]."',question22 = '".$line[22]."', comments1 = '".$line[23]."', comments2 = '".$line[24]."'";   
               $result=mysqli_query($dbc,$query);
               }
        }
    }  
   fclose($csvFile);
  }
?>

【问题讨论】:

    标签: php mysql sql csv fgetcsv


    【解决方案1】:

    fclose($csvFile); 移动到存在if 条件的$csvFile 变量中:

    <?php
    
    if(isset($_POST['importSubmit'])){
    
        $csvMimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain');
        if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'],$csvMimes)){
            if(is_uploaded_file($_FILES['file']['tmp_name'])){
    
                $csvFile = fopen($_FILES['file']['tmp_name'], 'r');
    
                fgetcsv($csvFile);
    
                while(($line = fgetcsv($csvFile)) !== FALSE){
    
                    require_once('../../mysqlConnector/mysql_connect.php');
                    $query="UPDATE communitysurvey SET  stationID = '".$line[0]."',userID= '{$_SESSION['username']}', question1 = '".$line[1]."', question2 = '".$line[2]."', question3 = '".$line[3]."', question4 = '".$line[4]."', question5 = '".$line[5]."', question6 = '".$line[6]."', question7 = '".$line[7]."', question8 = '".$line[8]."', question9 = '".$line[9]."',question10 = '".$line[10]."', question11 = '".$line[11]."', question12 = '".$line[12]."', question13 = '".$line[13]."', question14 = '".$line[14]."',question15 = '".$line[15]."', question16 = '".$line[16]."', question17 = '".$line[17]."', question18 = '".$line[18]."', question19 = '".$line[19]."',question20 = '".$line[20]."', question21 = '".$line[21]."',question22 = '".$line[22]."', comments1 = '".$line[23]."', comments2 = '".$line[24]."'";
    
                    $result=mysqli_query($dbc,$query);
                }
    
                fclose($csvFile);
    
            }
        }
    
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-20
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 2015-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多