php - 上传顶部有空白单元格的 CSV 文件时出现未定义偏移错误

标签 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 表而言,我的代码工作正常。但这个错误看起来不太好。

我希望执行代码时不显示任何错误。

任何有关此问题的帮助都将受到高度赞赏。

最佳答案

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

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

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

依此类推,然后将值发送到此处

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

关于php - 上传顶部有空白单元格的 CSV 文件时出现未定义偏移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40371761/

相关文章:

javascript - 自动显示图像文件夹中的图像库

php - Magento 1.9.1 更新自定义模块中的记录,尝试插入新记录

php - MySql查询重复字段

mysql - 在 MySQL 中存储非常大的整数

mysql - 使用复杂查询命令行mysql导出数据

java - 非标准、结构化 CSV - 正则结构

php - 我应该使用哪个行尾字符?

php - 使用外键获取值时出现问题

php - 在MySQL中对具有相同列值的多行的值求和

.net - .NET 中的 .CSV 到 .MDB 转换