0

我将 CSV 文件拉入脚本,解析它,然后更新我的 MySQL 表。问题是它只插入来自 CSV 文件第二行的数据(第一行被跳过,因为它是列的标题)。这是我的代码:

$f = fopen("sample.csv", "r");
while(($line = fgetcsv($f)) !== FALSE){
    $time = $line[0];

    //SKIP FIRST LINE (WITH HEADERS)
    if($time == "Time"){
        continue;
    }
    else{
        $size = $line[1];
        $location = $line[2];
        $county = $line[3];
        $state = $line[4];
        $lat = $line[5];
        $lon = $line[6];
        $comments = $line[7];
        $sql = "INSERT INTO sample (time, size, location, county, state, lat, lon, comments) VALUES ('$time', '$size', '$location', '$county', '$state', '$lat', '$lon', '$comments')";
        $result = $mysqli->query($sql);
        //CHECK TO SEE IF THE LOOP IS WORKING THROUGH ALL DATA
        echo $size;
    }
}
fclose($f);

问题是它成功地跳过了第一行,然后在第二个循环中,它成功地更新了数据库。如您所见,我已经回显了 $size 的值,它回显了所有行的所有值,这意味着它正确地循环了所有数据。我不确定为什么它不将该数据添加到每个后续行中。

谢谢你的帮助!

4

1 回答 1

0

您需要将文本与文件分开,试试这个:

while(($line = fgetcsv($f,4096,",", '"')) !== FALSE){
于 2013-06-10T08:33:48.850 回答