我将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的值,它回显了所有行的所有值,这意味着它正确地循环遍历所有数据。我不确定为什么它不会将数据添加到每个后续行中。
感谢您的帮助!
答案 0 :(得分:0)
你需要将文本与文件分开,试试这个:
while(($line = fgetcsv($f,4096,",", '"')) !== FALSE){