【发布时间】:2014-05-29 14:24:32
【问题描述】:
我有以下代码可以将 CSV 文件导入 MYSQL 数据库,但在导入时遇到了一些问题。
$csv_file = CSV_PATH . "resultsimport.csv"; // Name of your CSV file
$csvfile = fopen($csv_file, 'r');
$theData = fgets($csvfile);
$i = 0;
while (!feof($csvfile)) {
$csv_data[] = fgets($csvfile);
$csv_array = explode(",", $csv_data[$i]);
$insert_csv = array();
$insert_csv['ID'] = $csv_array[0];
$insert_csv['SerialNo'] = $csv_array[1];
$insert_csv['ChannelNo'] = $csv_array[2];
$insert_csv['IL850'] = $csv_array[3];
$insert_csv['IL1300'] = $csv_array[4];
$insert_csv['IL1310'] = $csv_array[5];
$insert_csv['IL1550'] = $csv_array[6];
$insert_csv['RL850'] = $csv_array[7];
$insert_csv['RL1300'] = $csv_array[8];
$insert_csv['RL1310'] = $csv_array[9];
$insert_csv['RL1550'] = $csv_array[10];
$query = "INSERT INTO results(ID,SerialNo,ChannelNo,IL850,IL1300,IL1310,IL1550,RL850,RL1300,RL1310,RL1550)
VALUES('".$insert_csv['ID']."','".$insert_csv['SerialNo']."','".$insert_csv['ChannelNo']."','".$insert_csv['IL850']."','".$insert_csv['IL1300']."','".$insert_csv['IL1310']."','".$insert_csv['IL1550']."','".$insert_csv['RL850']."','".$insert_csv['RL1300']."','".$insert_csv['RL1310']."','".$insert_csv['RL1550']."')";
$n=mysql_query($query, $connect );
$i++;
}
fclose($csvfile);
echo "File data successfully imported to database";
mysql_close($connect);
以下是 CSV 文件中前两行的示例:
ID,SerialNo,ChannelNo,IL850,IL1300,IL1310,IL1550,RL850,RL1300,RL1310,RL1550
1405230001-A-MTP-1-01,1405230001,A-MTP-1-1,0.320,0.150,,,,,,
如您所见,其中两列中只有数据,但在某些导入时,最后一列中会导入数据。
当最后一列中没有数据时会出现问题,我的导入过程会将 \r\n\ 添加到数据库中。
我怎样才能避免这种情况?
最后我在导入时也有一个空行。
【问题讨论】: