上传包含空白单元格的CSV文件时出现未定义的偏移量错误

时间:2016-11-02 02:53:31

标签: php mysql csv

这是我的CSV文件:

https://drive.google.com/open?id=0B_1cAszh75fYTjdobFMwVFdVT2c

这是我上传CSV文件并将数据插入我的mysql表的代码:

if(isset($_POST["submit"]))  
 {  

  $ddates = $_POST['uploaddate'];

  if($_FILES['file']['name'])  
  {  
       $filename = explode('.',$_FILES['file']['name']);  
       if($filename[1] == 'csv')  
       {  
            $handle = fopen($_FILES['file']['tmp_name'], "r");  
            while($data = fgetcsv($handle))  
            {                 
                 $item1 = mysqli_real_escape_string($connect, $data[0]);  
                 $item2 = mysqli_real_escape_string($connect, $data[1]);  
                 $item3 = mysqli_real_escape_string($connect, $data[2]);  
                 $item4 = mysqli_real_escape_string($connect, $data[3]);  
                 $item5 = mysqli_real_escape_string($connect, $data[4]);  
                 $item6 = mysqli_real_escape_string($connect, $data[5]);  
                 $item7 = mysqli_real_escape_string($connect, $data[5]);  
                 $item8 = mysqli_real_escape_string($connect, $data[6]);  
                 $item9 = mysqli_real_escape_string($connect, $data[6]);  
                 $item10 = mysqli_real_escape_string($connect, $data[7]);  
                 $item11 = mysqli_real_escape_string($connect, $data[7]);  
                 $item12 = mysqli_real_escape_string($connect, $data[8]);  
                 $item13 = mysqli_real_escape_string($connect, $data[9]);  
                 $item14 = mysqli_real_escape_string($connect, $data[10]);  
                 $item15 = mysqli_real_escape_string($connect, $data[11]);  
                 $item16 = mysqli_real_escape_string($connect, $data[12]);  




                 $sql="INSERT into tblone(uploaddate, one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen) values('$ddates', '$item1','$item2','$item3','$item4','$item5','$item6','$item7','$item8','$item9','$item10','$item11','$item12','$item13','$item14','$item15','$item16')";  
                 mysqli_query($connect, $sql);  
            }  
            fclose($handle);  
            print "Import done";  
       }  
  }  
 }  

当我尝试上传CSV文件时,它会显示错误“通知:未定义的偏移........:”

enter image description here

我知道为什么它会显示错误。如您所见,我的csv文件有9列,顶部有列标题。但接下来的4列没有任何标题。我的意思是“借方金额”“贷方金额”等在这些列的顶部没有值/标题。

我的代码可以正常工作,因为上传CSV文件并将数据插入到mysql表中。但是这个错误看起来并不好看。

我希望执行代码时不会出现任何错误。

对此有任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

只需将此代码放在您的phpfile之上 error_reporting(0);

或首先使用isset示例代码进行验证:

$data1 = (isset($data[0])) ? $data[0] : '';

等等然后在这里发送值

$item1 = mysqli_real_escape_string($connect, $data1);