#mysql #csv #import #hosting #aruba
#mysql #csv #импорт #хостинг #aruba
Вопрос:
У меня возникла большая проблема при импорте CSV-файла в таблицу базы данных моего сайта. Используя Filezilla, структура папок моего сайта выглядит следующим образом: www.mysite.it/mysite/scripts . В этой папке (scripts) есть как csv-файл для импорта в db, так и PHP-скрипт для выполнения импорта.
Файл CSV (с разрешениями, установленными на 777) — tabella.csv, и это файл, подобный этому:
"2016-09-02", "100.01", "4005.09", "5000", "1.09", "120.09", "100.5", "200.77"
"2016-09-03", "150.01", "4205.09", "5600", "1.10", "150.09", "300.5", "300.77"
Скрипт PHP выглядит следующим образом:
<?php
$csvFile = "../scripts/tabella.csv";
$realPath = realpath($csvFile);
$db = @mysql_connect('**.***.***.***', 'Sql******', '*******');
@mysql_select_db('Sql******_*');
$query = 'LOAD DATA LOCAL INFILE ' '. $realPath .' ' INTO TABLE rame
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'rn'
IGNORE 1 LINES
(
giorno,
lmedollton,
changedolleuro,
euroton,
lmesterton,
delnotiz,
girm,
sgm
)';
if(!mysql_query($query)){
die(mysql_error());
}
mysql_close($db);
?>
Ошибка «файл не найден». Я пытаюсь использовать абсолютный путь, отдельный файл, относительный путь.. Я пытаюсь удалить ‘LOCAL’ из запроса.. Я написал в службу Aruba, думая, что это проблема с файлами разрешений, но они сказали мне использовать «LOCAL» в запросе.. В панели управления Aruba в phpMyAdmin в меню нет пункта «Привилегии», поэтому я не могу их установить .. У кого-нибудь есть идеи, чтобы узнать о моей проблеме? Путь к файлу? Разрешения?
Комментарии:
1. Вы убедились, что действительно можете получить доступ к CSV, используя value in
$realPath
из того места, где вы это делаетеLOAD DATA
?2. с какой стати вы пишете код для этого? Почему бы просто не использовать консоль mysql?
3. @tim могу ли я это проверить? Я только проверил это по url www.mysite/mysite/scripts/tabella.csv Я могу скачать этот файл..
4. Я не могу проверить, но я думаю, вам нужен путь к реальной файловой системе, а не URL.
5. У вас помечен хостинг. Помните, что возврат к корневому абсолютному пути может быть затруднительным в средах хостинга
/home/xxx
, где эквивалентом or может быть реальная заглушка пользовательского доступа. Итак, то, что вы считаете правильным путем, нереально в этом виртуальном мире. Сильно отличается от вашего локального сервера разработки. Если сомневаетесь, зайдите в ssh и пошалите
Ответ №1:
После
$realPath = realpath($csvFile);
создайте
var_dump($realPath)
и посмотрите, какой у вас есть путь. Затем попытайтесь понять, правильно ли загружается файл или нет. Если у вас в одной папке (scripts) есть и php
то, и csv
то, ваш путь неверен.
$csvFile = "../scripts/tabella.csv";
Это говорит php о необходимости прочитать папку, снова ввести скрипты и найти csv
. Он var_dump
сообщит вам, правильно это или нет.