繁体   English   中英

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

[英]Adding commas at the end of each line when importing CSV

我对PHP还是很陌生,需要您的帮助来解决问题。 我将按照以下步骤说明我的问题:

1-我有一个CSV文件,我想用PHP将其导入MySQL数据库。

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

3-我想在我的PHP代码中添加新行,这将在每个记录/行的末尾添加逗号,并将启用导入的数据而不会出现任何错误。

这是我的代码:

<?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结尾

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

如果在row1上具有列名,则可以有12列,如果需要,只需使用4列。

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

https://dev.mysql.com/doc/refman/5.1/zh-CN/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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM