首页 > 解决方案 > 在数据库中上传 csv 文件 - php

问题描述

这是我的代码。我收到错误“注意:未定义的偏移量:9”。如果我在 $item9 之前有它可以工作,但我实际上希望在 $item13 之前有。

if(isset($_POST["submit"]))
{
    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[6]);
                $item8 = mysqli_real_escape_string($connect, $data[7]);
                $item9 = mysqli_real_escape_string($connect, $data[8]);
                $item10 = mysqli_real_escape_string($connect, $data[9]);


                $query = "INSERT into tab1(country, jan, feb,mar,apr,may,jun,jul,aug) values('$item1','$item2','$item3','$item4','$item5','$item6','$item7','$item8','$item9','$item10')";
                mysqli_query($connect, $query);
            }
            fclose($handle);

标签: phpcsvfile-uploadfgetcsv

解决方案


您在最后的评论中回答自己。所以照你说的做——例如。像这样替换每个项目行:

$item1 = array_key_exists(0, $data) ? mysqli_real_escape_string($connect, $data[0]) : '0';

推荐阅读