Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CSV换行问题_Php_Mysql_Csv - Fatal编程技术网

Php CSV换行问题

Php CSV换行问题,php,mysql,csv,Php,Mysql,Csv,我有一个包含以下内容的CSV文件 10000,hello 10000,bye 10000,good 下面是我的代码,用于读取CSV文件,并将其发送到数据库 if ($_FILES[csv][size] > 0) { //get the csv file $file = $_FILES[csv][tmp_name]; $handle = fopen($file,"r"); //loop through the csv file and inser

我有一个包含以下内容的CSV文件

10000,hello
10000,bye
10000,good
下面是我的代码,用于读取CSV文件,并将其发送到数据库

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

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

    //loop through the csv file and insert into database 
    do { 
        if ($data[0]) { 
            mysql_query("INSERT INTO table_name (table_column1, table_column2) VALUES 
                ( 
                    '".$data[0]."', 
                    '".$data[1]. "'
                ) 
            ");         
        }
    } while ($data = fgetcsv($handle,1000,",")); 

} 
在上面,来自CSV的数据无法进入数据库,因为它读取的文件如下所示

10000 hello 10000
bye 10000
good
我可以知道,这有什么问题吗?代码有问题吗?

但是,如果我的CSV文件的格式如下所示(每行之间有一个空行)


所有数据都可以成功地进入数据库。

为什么不使用csv读取功能呢

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

    //get the csv file 
    $file = $_FILES[csv][tmp_name]; 
    $lines = file($file); 

    foreach ($lines as $line)
    {
        $data = explode(",", $line);
        if ($data[0] != "") { 
            mysql_query("INSERT INTO table_name (table_column1, table_column2) VALUES 
                ( 
                    '".$data[0]."', 
                    '".$data[1]. "'
                ) 
            ");         
        }
    }
}

呃,仍然是相同的结果,数据不会进入数据库,它会像这样读$line,10000,1UlmK 10000,1PBfj 10000,1bCNa 10000,1RQSb 10000,1RQ为什么不能调试或什么?试过调试。没有错误。只是,它无法发送到数据库中,因为数据没有被正确读取..但感谢您的帮助/想法。请尝试
在循环中打印($data)
,这样您就知道它是否正确读取,可能是由于您连接到DBSorry的方式有问题,导致延迟答复。。顺便说一下,这是输出,数组([0]=>10000[1]=>hello 10000[2]=>bye 10000[3]=>good)。。
if ($_FILES[csv][size] > 0) { 

    //get the csv file 
    $file = $_FILES[csv][tmp_name]; 
    $lines = file($file); 

    foreach ($lines as $line)
    {
        $data = explode(",", $line);
        if ($data[0] != "") { 
            mysql_query("INSERT INTO table_name (table_column1, table_column2) VALUES 
                ( 
                    '".$data[0]."', 
                    '".$data[1]. "'
                ) 
            ");         
        }
    }
}