правильный путь для использования при импорте CSV-файла в MySQL

#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 сообщит вам, правильно это или нет.