簡體   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