0

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 の値をエコー出力し、すべての行のすべての値をエコーし​​て、すべてのデータを正しくループしていることを意味します。そのデータを後続の各行に追加しない理由がわかりません。

ご協力いただきありがとうございます!

4

1 に答える 1

0

ファイルからテキストを分離する必要がある場合は、これを試してください:

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