导入 CSV 时在每行末尾添加逗号

Adding commas at the end of each line when importing CSV

我是 PHP 的新手,遇到问题需要您的帮助。我将按以下步骤解释我的问题:

1- 我有一个 CSV 文件,我想使用 PHP.

将其导入 MySQL 数据库

2- 当我在 CSV 文件的每一行末尾添加逗号时,我可以使用 Mysql db 中的 IMPORT 选项导入它。如果不在行尾添加逗号,我无法导入它。

3- 我想在我的 PHP 代码中添加一个新行,它会在每个 record/line 的末尾添加逗号,并使导入的数据没有任何错误。

这是我的代码:

<?php

//read file
$csvfile=file_get_contents("/samba/import/Tbl_HRList.csv");


$lines = explode(PHP_EOL, $csvfile);
$array = array();
foreach ($lines as $line) {
    $field = str_getcsv($line);
    if ($field[0] != ''){

        $sql="INSERT INTO HR_Tbl (Employee_ID, First Name, Prefix, Surname, Location, Organizational Code, Organizational Unit, Team, Team Code, Function, Function code, T24 Department Code, Date in service (GBI), Company email, End Date Contract, End Date Systems, Temp. Leave Date, Temp. Leave End, Temp. Leave Code)
                VALUES
('$field[0]','$field[1]','$field[2]','$field[3]','$field[4]','$field[5]','$field[6]','$field[7]','$field[8]','$field[9]','$field[10]','$field[11]','$field[12]','$field[13]','$field[14]','$field[15]','$field[16]','$field[17]','$field[18])";

    }

    //insert record to database

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully". PHP_EOL;
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}
else
{
continue;
}
}

$conn->close();
?>

提前致谢 亚历克斯

使用Load Data Infile完全放弃上面的想法

您可以让 csv 行以 \n\r\n

结尾

您可以让该导入文件的第一行有或没有列名。 如果您有列名,则跳过第一行。

如果第 1 行有列名,则可以有 12 列,如果需要,只需使用 4 列即可。

这是一个非常灵活的结​​构。看看吧。

https://dev.mysql.com/doc/refman/5.1/en/load-data.html

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES;