Я использую следующий скрипт для импорта данных в мою базу данных mysql из файлов CSV.CSV настроен так:
Name Postcode
fred hd435hg
bob dh345fj
Выше показано, как это выглядит в Excel, в формате raw csv, который просматривается в блокноте, это выглядит так:
name,postcode
frank,ng435tj
Я проблемаПо какой-то причине столбец с почтовым индексом не импортируется вообще, а строка заголовка также импортируется как запись, можно ли пропустить первую строку?Я прошел через код и не могу понять, почему почтовый индекс не вводится, это очень странно.
<?php
//database connect info here
//check for file upload
if(isset($_FILES['csv_file']) && is_uploaded_file($_FILES['csv_file']['tmp_name'])){
//upload directory
$upload_dir = "./csv";
//create file name
$file_path = $upload_dir . $_FILES['csv_file']['name'];
//move uploaded file to upload dir
if (!move_uploaded_file($_FILES['csv_file']['tmp_name'], $file_path)) {
//error moving upload file
echo "Error moving file upload";
}
//open the csv file for reading
$handle = fopen($file_path, 'r');
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
//Access field data in $data array ex.
$name = $data[0];
$postcode = $data[1];
//Use data to insert into db
$sql = sprintf("INSERT INTO test (name, postcode) VALUES ('%s',%d)",
mysql_real_escape_string($name),
$postcode
);
mysql_query($sql) or (mysql_query("ROLLBACK") and die(mysql_error() . " - $sql"));
}
//delete csv file
unlink($file_path);
}
?>