CSV ファイルをスクリプトに取り込んで解析し、MySQL テーブルを更新しています。問題は、CSV ファイルの 2 行目のデータのみを挿入していることです (最初の行は列のヘッダーであるためスキップされています)。これが私のコードです:
$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);
問題は、最初の行を正常にスキップし、2 回目のループでデータベースを正常に更新することです。ご覧のとおり、$size の値をエコー出力し、すべての行のすべての値をエコーして、すべてのデータを正しくループしていることを意味します。そのデータを後続の各行に追加しない理由がわかりません。
ご協力いただきありがとうございます!