Итак, у меня проблема с загрузкой моего CSV в базу данных SQL с помощью PHP и Wordpress. Оба работают на локальном xammp atm.
Это мой код для загрузки файла CSV. Сначала он загружает его через html-форму в некоторую временную папку (данные), а затем пытается с помощью LOAD DATA
скопировать содержимое в таблицу (wp_data
)
<?php
if (isset($_POST['submit'])) {
global $wordpress,$wpdb;
$file = $_FILES['fileToUpload']['tmp_name'];
$target_dir = $_SERVER['DOCUMENT_ROOT']."/data";
$target_file = $target_dir . '/' . basename($_FILES["fileToUpload"]["name"]);
move_uploaded_file($file, $target_file);
$sql="
LOAD DATA INFILE '$target_file' INTO TABLE wp_data FIELDS TERMINATED BY ';' IGNORE 1 ROWS";
$query = $wpdb->query($sql);
}
?>
Часть загрузки работает нормально, однако, когда она пытается заполнить таблицу данными, она просто заполняет значения "0s" / NULL, как this :
Файл в виде текста выглядит как this :
А визуально это выглядит как это :
Структура таблицы от SHOW CREATE TABLE wp_data
:
CREATE TABLE `wp_data` (
`Unix_time` int(11) NOT NULL,
`Message` text NOT NULL,
`Time` float NOT NULL,
`DF` int(11) NOT NULL,
`Type_code/BDS_number` int(11) NOT NULL,
`Latitude` double NOT NULL,
`Longitude` double NOT NULL,
`Altitude` int(11) NOT NULL,
`Ground_speed` double NOT NULL,
`Baro_diff` int(11) NOT NULL,
`Heading` int(11) NOT NULL,
`TAS` int(11) NOT NULL,
`Mach` float NOT NULL,
`FOM_SOURCE` varchar(40) DEFAULT NULL,
`Wind_speed` varchar(40) DEFAULT NULL,
`Wind_direction` varchar(40) DEFAULT NULL,
`Temperture` text,
`Pressure` varchar(40) DEFAULT NULL,
`Turbulence` varchar(40) DEFAULT NULL,
`Humidity` varchar(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Что я здесь не так делаю? Я новичок в PHP и застрял на этом
: (...
Thx.