PHP скрипт для імпорту CSV даних в MySQL

Це простий скрипт, який дозволить вам імпортувати CSV-даних в базі даних. Це відбувається зручно, тому що ви можете просто відредагувати відповідні поля, завантажте його разом з CSV-файл і викликати її з Мережі, і він буде робити все інше.

Це дозволяє задати роздільник у цьому CSV-файлу, чи є це комусь, вкладки і т.д. Вона також дозволяє вам вибрати роздільник рядків, дозволяє зберігати висновок у файл (відомий як даних SQL дамп).

Це також дозволяє Вам включати порожні поля на початку кожного рядка, які, як правило, цілими автоінкремент первинний ключ.

Цей сценарій зазвичай корисний, якщо у вас немає PhpMyAdmin, або ви не хочете клопоту входу в систему і вважають за краще декілька кліків рішення, або Ви просто командному рядку хлопець.
Просто переконайтеся, що таблиця вже створена, перш ніж намагатися скинути дані.
Будь ласка, ваші коментарі, якщо ви отримали будь-якої звіт про помилку.

Завантажити файл тут

Теги:
  1. Робочий та розбору CSV і текстові файли PHP
    15 травня 2011 о 17:52
    # 1
  2. Joln
    11 травня 2011 в 7:52

    Великий сценарій! Tnx багато

  3. Umair
    2 травня 2011 в 7:39

    Привіт ...
    Я зіткнувся з проблемою, коли я використовую це, його показ помилку,
    "Застарілі: Функція розколу () є застарілим в C: \ WAMP \ WWW \ test1 \ simplecsvimport.php на лінії 64
    Файл не доступний для запису, перевірте дозволу. Знайдено в загальній складності 41 записів у цьому форматі CSV файл. "

    Прохання відповісти, в чому справа!
    заранее спасибо!

  4. justkid
    7 квітня 2011 о 10:25

    Я дійсно плутають з цим Кодексом!
    але я не буду намагатися до!
    До речі, як код HTML або поле, щоб називати цей код

  5. Хорхе Діаса
    14 березня 2011 в 19:01

    Спасибі, дуже хороший CSV імпортера.
    Але я виявив, одна маленька проблема, він працює тільки з CSV файл зі структурою: "field1", "поле2", "field3" і т.д., але я Хава файлу CSV так: Поле1, поле2; filed3, і т.д.

    Єдине, що можу зміна $ fieldseparator але як я можу 'говорити' сценарій, що файл не використовується "(роздільник полів)?
    Мій ideia був список, що випадає з $ fieldseparator (або ;) і ще один з $ FieldDelimiter ("або нічого)

    Спасибо заранее.

  6. Іржавий
    3 лютого 2011 у 14:56

    Будь-яка ідея про те, як отримати цей скрипт для роботи на полях, укладені в подвійні лапки, щоб поля з комами в них не читається як новий?

    У мене є дані, що включає в себе коми, як суми в доларах та коментарі розділ, де користувачі могли використовувати кому. Мені потрібно все поле імпортувати і цей сценарій розглядає їх як нових родовищ.

  7. qwewe
    23 січня 2011 у 14:56

    Марк @ Клойд
    "Адреса = VALUES (адреса)
    Я отримую помилки тут Синтаксична помилка: синтаксична помилка, несподіваний '='

  8. ronbowalker
    15 січня 2011 в 17:54

    @ Joofoo
    Я завантажений код, але я не отримую оновлення інформації в базі даних MySQL ...

    CSV містить:
    Заголовок -> ім'я користувача, пароль, повідомлення, електронну пошту, зображення, дата
    Стр2 -> Білл, чувак,,,,
    Row3 -> Джейн, дівчина,,,,
    Row4 -> Девід, дитина,,,,

    А ось код ...:
    <? PHP

    / / Налаштування з iphonelogin.php файл в "віддаленому" папки ...
    / * Підключення до БД * /
    / / $ Посилання = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689') або померти ("Не вдається підключитися до БД");
    / / Mysql_select_db ('ronbo', $ посиланням) або померти ("Неможливо вибрати БД");

    / / http://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Код на http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Змінити запису нижче, щоб відображати відповідні значення
    /********************************/
    $ Databasehost = "DBHost";
    $ DatabaseName = "ім'я";
    $ Databasetable = "стіл";
    $ Databaseusername = "Ім'я користувача";
    $ Databasepassword = "пароль";
    $ Fieldseparator = "";
    $ LineSeparator = "\ п";
    $ Csvfile = "spreadsheet.csv";
    /********************************/
    $ Addauto = 1;
    /********************************/
    $ Зберегти = 0;
    $ Вихідний_файл = "output.sql";
    /********************************/

    якщо (! file_exists ($ csvfile)) {
    Ехо "Server отримав ваш запит, але файлу CSV для завантаження в базу даних немає ... .. \ п";
    виходу;
    }

    $ ChunkSize = 1 * (1024 * 1024);
    $ Файл = FOPEN ($ csvfile, "РБ");
    якщо (! $ файл) {
    Ехо "Помилка відкриття файлу даних \ п.";
    виходу;
    }

    $ = Розмір файлу ($ csvfile);

    якщо (! $ розміру) {
    Ехо "Файл пустий \ п.";
    виходу;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) або померти (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) або померти (mysql_error ());

    $ Ліній = 0;
    $ Запитів = "";
    в той час як (! feof ($ файл)) {
    $ Csvline = ЕдеЬз ($ файл, $ ChunkSize);

    $ Ліній + +;
    якщо ($ лінії <2) продовжувати;

    $ Лінія = TRIM ($ csvline ", \ т");

    $ Лінія = str_replace ("\ г ","",$ лінія);

    /************************************************* ************************************************** *********
    Ця лінія втечу особливий характер. видалити його, якщо записи вже біг в CSV файл
    ************************************************** ************************************************** ********/
    $ Лінія = str_replace ("'"," \ '", $ лінія);
    /************************************************* ************************************************** ********/

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    $ Linemysql = вибухати ("','",$ linearray);

    $ Дієгу = "вставити в $ databasetable значення ('$ linemysql');";

    якщо ($ зберегти) $ запитів .= $ запиту. "\ П";

    @ Mysql_query ($ запиту);
    Ехо $ ліній "\ п".
    }
    fclose ($ файл);

    $ Ліній -= 3;

    @ Mysql_close ($ CON);

    <>

    Я дійсно міг використовувати деяку допомогу в отриманні цієї роботи ...
    Рон

  9. joofoo
    11 січня 2011 в 11:16

    @ Рой
    Я змінив свій сценарій, так що він споживає набагато менше пам'яті при обробці великих файлів (він вдарив PHP ліміт пам'яті, коли я спробував використовувати його на 100 Мб файлу CSV). Зміни полягають у наступному:


    $chunksize = 1*(1024*1024);
    $file = fopen($csvfile,"rb");
    if(!$file) {
    echo "Error opening data file.\n";
    exit;
    }

    $ = Розмір файлу ($ csvfile);

    якщо (! $ розміру) {
    Ехо "Файл пустий \ п.";
    виходу;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) або померти (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) або померти (mysql_error ());

    $ Ліній = 0;
    $ Запитів = "";
    в той час як (! feof ($ файл)) {
    $ Csvline = ЕдеЬз ($ файл, $ ChunkSize);

    $ Ліній + +;
    якщо ($ лінії <2) продовжувати;

    $ Лінія = TRIM ($ csvline ", \ т");

    $ Лінія = str_replace ("\ г ","",$ лінія);

    /************************************************* ************************************************** *********
    Ця лінія втечу особливий характер. видалити його, якщо записи вже біг в CSV файл
    ************************************************** ************************************************** ********/
    $ Лінія = str_replace ("'"," \ '", $ лінія);
    /************************************************* ************************************************** ********/

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    $ Linemysql = вибухати ("','",$ linearray);

    $ Дієгу = "вставити в $ databasetable значення ('$ linemysql');";

    якщо ($ зберегти) $ запитів .= $ запиту. "\ П";

    @ Mysql_query ($ запиту);
    Ехо $ ліній "\ п".
    }
    fclose ($ файл);

    $ Ліній -= 3;

    @ Mysql_close ($ CON);

    Спасибі,

  10. Халед
    11 січня 2011 о 10:35

    @ Халед
    Як я можу експортувати UTF8 Excel для output.sql
    спасибі

  11. Халед
    11 січня 2011 в 9:46

    Я спробував сценарій, але output.sql є творчість дивні речі,
    вставити в test_excel значення ('PK |!??????? Q k5 Q Q Q Q k5 K5 д ....

    як ці речі
    Як я можу вирішити цю проблему. будь-який спеціальний формат для Excel аркуша?

  12. Кролячий садок
    30 грудня 2010 о 18:57

    Привіт, хлопці, просто хотів, щоб ви всі знаєте, що я знайшов когось, щоб написати мені самій програми мені потрібно.

  13. Кролячий садок
    29 грудня 2010: 01:31

    @ Уоррен

    /********************************/
    Цей файл включає в себе багато спроб зміни, зроблені Уоррен (не програміст) 28 грудня 2010 з урахуванням зауважень на сайті джерела і інша інформація, з тим щоб зробити цю програму в один він потребує. Це дуже неповною. Довідка самих популярних і дуже потрібні.

    Лінії додав для створення поля введення для сайту URL ім'я бази даних і пароля і т.д.
    /********************************/

    Ласкаво просимо на сервер Завантажити утиліту

    Ця програма працює з вашого комп'ютера для заповнення дві порожні таблиці в новій базі даних MySQL на Вашому сайті по: завантаження кожного файлу менше розширення, з унікальним номером на фронті боротьби, в таблиці keywords_categories, а потім присвоює номер 1 в порожній стовпець перед першою співпадаючих даних з цього файлу, і збільшує кількість на одиницю для кожного наступного обробленого файлу з цього каталогу, так що число assigend до категорії ім'я в таблиці відповідає слова належать йому, які потім завантажені в таблиці ключових слів.

    Це робиться для всіх CSV файлів у вказаний каталог на вашому.

    Він ігнорує перші п'ять рядків в CSV-файл.

    Посилання на сайт:
    Ім'я бази даних:
    Ім'я користувача бази даних:
    Пароля бази даних:
    Шлях Каталог, що містить файли для завантаження:

    /********************************/
    Питання
    Як я можу отримати вище дані з полів введення в програму, щоб відповідати, що зазначені нижче?
    /********************************/

    <? PHP
    /********************************/
    Лінія додають для запобігання тайм-аут на великих файлів.
    /********************************/

    set_time_limit (0);

    /********************************/
    Отримати імена файлів файлів, які будуть оброблятися, видалити розширення файлу потім використовувати їх для завантаження в якості назви категорій у таблиці keywords_categories.
    /********************************/

    /********************************/
    Видаляє ім'я файлу розширень
    скопійовані з WWW perlmonks ORG /? node_id = 151232
    /********************************/

    на південь parse_out_extension {
    померти ("Немає файлу для розбору \ п".), якщо (@ _!);

    моє ($ файл) = @ _;
    мій @ штук;

    Карта {Push (@ штук, $ _)} розкол (/ \ /, $ файлу.);

    мій $ кінці = поп (@ штук);
    $ Файл = S / \ $ кінця / /.

    повернення ($ файл), якщо $ файл;

    /********************************/
    / * Вихідний код на http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Змінити запису нижче, щоб відображати відповідні значення
    /********************************/
    $ Databasehost = "локальний";
    $ DatabaseName = "тест";
    $ Databasetable = "зразок";
    $ Databaseusername = "тест";
    $ Databasepassword = "";
    $ Fieldseparator = "";
    $ LineSeparator = "\ п";
    $ Csvfile = "filename.csv";
    /********************************/
    / * Ви хотіли б додати ampty поле на початку ці записи?
    / * Примітка Уоррен у випадку ключові слова, які першому стовпці дані в кожному файлі, на файл, файл основі цієї нової порожній coum місце DIN frot з ключових слів повинна бути змінена таким чином він захоплює номер, присвоєний Категорія ім'я, яке складається з імені файлу менше розширення і поміщає його в цій новій порожній першій колонці.
    / * Це корисно, якщо у вас є таблиця з першого поля AUTO_INCREMENT бути цілим числом. Записка Уоррен. Це те, що необхідно в разі імена файлів менш exteniosn які upoaded до таблиці keywords_categories.
    / * І CSV файл не такі, як порожнє поле до запису.
    / * Встановити 1 для так і 0 якщо ні. УВАГА: не встановлено у 1, якщо ви не впевнені.
    / * Це може вивантажити дані в неправильному поля, якщо це додаткове поле не існує в таблиці. Записка Уоррен ймовірно, не треба цей файл я моєму випадку, але тільки думаю, з мого боку, але треба бачити потрібно, якщо такі є.
    /********************************/
    $ Addauto = 1;
    /********************************/
    / * Ви хотіли б зберегти MySQL запитів у файл? Якщо так безліч $ зберегти до 1.
    / * Дозвіл на файл повинен бути встановлений в 777. Або завантажити зразок файлу по протоколу FTP і
    / * Зміни дозволу, або виконати в командному рядку: сенсорний output.sql & & CHMOD 777 output.sql
    /********************************/
    $ Зберегти = 0;
    $ Вихідний_файл = "output.sql";
    /********************************/

    якщо (! file_exists ($ csvfile)) {
    Ехо "Файл не знайдений. Переконайтеся, що ви вказали правильний шлях \ п ".
    виходу;
    }

    $ Файл = FOPEN ($ csvfile, "г");

    якщо (! $ файл) {
    Ехо "Помилка відкриття файлу даних \ п.";
    виходу;
    }

    $ = Розмір файлу ($ csvfile);

    якщо (! $ розміру) {
    Ехо "Файл пустий \ п.";
    виходу;
    }

    $ Csvcontent = FREAD ($ файл, розміром $);

    fclose ($ файл);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) або померти (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) або померти (mysql_error ());

    /********************************/
    Щоб уникнути вставки перші чотири низки adveristing текст заголовка в і порожній рядок. Лінія дорівнює нулю код був замінений на код нижче.
    /********************************/

    $ Ліній = 1; (значення лічильника 1)
    $ Запитів = "";
    $ Linearray = Array ();

    Еогеасп (Split ($ LineSeparator, $ csvcontent) при $ лінія) {

    $ Ліній + +; (присвоїло першої лінії № 2 (заголовок)

    якщо ($ ліній> = 5) {(початок у № 5 "нічого більше або дорівнює 5?)

    $ Запитів = "";
    $ Linearray = Array ();

    Еогеасп (Split ($ LineSeparator, $ csvcontent) при $ лінія) {

    $ Ліній + +;

    $ Лінія = TRIM ($ лінія ", \ т");

    $ Лінія = str_replace ("\ г ","",$ лінія);

    /************************************
    Ця лінія втечу особливий характер. видалити його, якщо записи вже біг в CSV файл
    ************************************/
    $ Лінія = str_replace ("'"," \ '", $ лінія);
    /*************************************/

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    $ Linemysql = вибухати ("','",$ linearray);

    якщо ($ addauto)
    $ Дієгу = "вставити в $ databasetable значення (",'$ linemysql');";
    ще
    $ Дієгу = "вставити в $ databasetable значення ('$ linemysql');";

    $ Запитів .= $ запиту. "\ П";

    /************************************
    Це трохи нижче код був доданий в даний час показують, повідомлення про помилки.
    ************************************/

    $ Результат = mysql_query ($ запиту);

    / / Перевірка результату
    / / Це показує фактичні запиту, відправленого в MySQL, і помилки. Корисно для налагодження.
    якщо (! $ результат) {
    $ Повідомлення = 'Неправильний запит:'. mysql_error (). "\ П";
    $ Повідомлення .= 'Всього запитів: ". $ Запиту;
    померти ($ повідомлень)
    }

    @ Mysql_close ($ CON);

    якщо ($ зберегти) {

    якщо (! is_writable ($ вихідний_файл)) {
    Ехо "Файл не доступний для запису, перевірте дозволу \ п.";
    }

    зе {
    $ File2 = FOPEN ($ вихідний_файл, "W");

    якщо (! $ file2) {
    Ехо "Помилка запису у вихідний файл \ п.";
    }
    зе {
    FWRITE ($ file2, $ запитів);
    fclose ($ file2);
    }
    }

    }

    Ехо "Знайдено в загальній складності $ прямих записів в CSV файл \ п.";

    ?>

  14. Кролячий садок
    28 грудня 2010 о 22:30

    Просто невелика корекція на моє прохання, дві таблиці в базі даних MqSQL я вже говорив насправді називається:

    keywords_categories

    ключові слова

  15. Кролячий садок
    28 грудня 2010 о 22:10

    @ Уоррен

    Крім того, просто з цікавості може це також процес текстовий файл, (що тільки список слів у ній) так само?

    (Я новачок в цьому, і знаю, що може бути просять багато, так що якщо хтось може скористатися цією невеликий проект на мене, якщо це необхідно, може бути, ми могли б обговорити моє платити невелику суму за свій час при ухваленні змін до задовольнити мої потреби? Будь ласка, дайте мені знати.)

    Моя електронна пошта: @ hotmail.com wr.spence

  16. Кролячий садок
    28 грудня 2010 о 21:37

    Я не програміст. Я бачу твою сценарій, і він може бути близька до того, що мені потрібно, або може, може бути, основою того, що мені потрібно, я не впевнений.

    Мені потрібно, щоб виконувати ті ж функції завантажити знову і знову, але з іншого підкаталог кожного разу з жорсткого диска, список CSV файлів, а також різних БД MySQL кожен раз (на differret сайт щоразу). У більшості випадків дБ, не матиме будь-яких даних в ньому, але це було б ідеально (але не обов'язково), якщо сценарій ще може працювати з БД, яка мала даних, без шкоди для існуючих даних).

    Мені це потрібно, щоб Увійти в БД на сервері (він повинен запитати у мене URL сайту і назви БД користувача та пароль, і т.д.).

    Мені потрібно те, що дозволяє мені переглянути і вибрати ім'я каталогу на жорсткому диску, або ввести його.

    Тоді процес кожного CSV файл у цьому каталозі, один за іншим, а саме:

    На кожному файлі мені це потрібно, щоб спочатку прийняти ім'я файлу (менше розширення) і завантажити його в БД в таблиці категорії. Ця таблиця містить номер ключа, який він потім був призначений на це ім'я.

    Я тоді необхідно сценарію, щоб завантажити тільки слово колонка (перша колонка даних) цього файлу в таблиці слів, і додати відповідні nubmer для категорії ім'я першого файлу.

    Слід зазначити, що файл CSV часто складається з трьох рядків тексту заголовка і порожній рядок, всі чотири з яких я хочу ігноруються і не завантажена. Є часто порожні рядки в ті eend з файлу Я також хочу, щоб це ігнорувати, ці, а також ігнорувати будь-які інші стовпці, які можуть бути або не бути в CSV файл. У деяких випадках CSV-файл не може мати жодних заголовків або будь-яких інших стовпців.

    Тоді наступний файл, поки він не працює з файлів в каталозі.

    Тоді я хотів би, щоб сказати мені "Процес завершено.", І якщо який-небудь помилки, щоб сказати мені.

    Чи може будь-який з вас, хлопці, допоможіть мені з цим?

  17. Альфа
    26 грудня 2010 о 18:32

    Дякуємо за відправлення Excel в MySQL скрипт, це дуже корисно для мене.

  18. Pruthvi
    24 грудня 2010 о 16:09

    Я. код працює, але NW я отримую мої дані у лапках @ Суман

  19. Суман
    23 грудня 2010 о 14:18

    Суман :
    @ Pruthvi
    Привіт,
    Будь ласка, використовуйте нижче наведений код ... ...

  20. Суман
    23 грудня 2010 в 14:16

    @ Pruthvi

    Привіт,

    Будь ласка, використовуйте нижче наведений код ... ...

  21. Суман
    23 грудня 2010 в 14:12

    Натерти кодексу Це дійсно корисно для всіх розробників PHP.

  22. Pruthvi
    23 грудня 2010 в 9:48

    Ви можете пояснити ваш код ви хочете замінити @ mysql_query ($ запиту); з заявами і дали, але вона показує помилки $ повідомлення не визначений @ Андрій риби

  23. Pruthvi
    23 грудня 2010 09:31,

    та ж проблема зі мною @ Андрій риби

  24. Pruthvi
    23 грудня 2010 о 09:30

    Остання розробка коду може виявити не рядків у CSV файл, але його не відображає його в таблиці

  25. Pruthvi
    23 грудня 2010 о 08:52

    Код повертає заяву, що він не міг знайти CSV файл ...
    Ват може бути проблема ....

  26. Андрій риби
    10 грудня 2010 о 15:28

    Добре, знайшов цю проблему. Я mispelt ім'я таблиці. Але можна знайти тільки питання, коли я додав наступний код, який буде повертати помилку, якщо SQL не виконується. В даний час скрипт не сказати, якщо там були проблеми.
    Таким чином, зміни лінії
    @ Mysql_query ($ запиту);

    на всі наступні: -

    $ Результат = mysql_query ($ запиту);

    / / Перевірка результату
    / / Це показує фактичні запиту, відправленого в MySQL, і помилки. Корисно для налагодження.
    якщо (! $ результат) {
    $ Повідомлення = 'Неправильний запит:'. mysql_error (). "\ П";
    $ Повідомлення .= 'Всього запитів: ". $ Запиту;
    померти ($ повідомлень)

    Надія, що допомагає комусь. Він зробив мені.
    AJ

    @ Андрій риби

  27. Андрій риби
    9 грудня 2010 в 16:26

    Коли я запускаю цей скрипт, використовуючи CSV, який я знаю імпорту правильно, використовуючи PHP Admin, скрипт працює, повідомляє правильне кількість рядків з повідомленням "Знайдено цілому 193 записів в CSV-файл." Але жодне з даних з'явиться в таблиці. Я вніс зміни в CSV, щоб я міг побачити, якщо дані були введені в таблицю і це не так. Будь-які ідеї?
    AJ

  28. Крейг
    8 грудня 2010 01:20,

    Мій CSV файлу імпорту також має подвійні лапки навколо кожного поля (в основному, щоб уникнути проблем, якщо мені потрібно імпортувати в Excel, щоб він не калічити даних), тому в мене була ця проблема, де він був вставки записів з лапки даних. Я позбавив всі подвійні лапки, додавши цей рядок:

    $ Лінія = str_replace ("\ "","",$ лінія);

    Після цієї лінії:

    $ Лінія = str_replace ("\ г ","",$ лінія);

    і нова лінія замінює подвійні лапки ні з чим. Це ж, як і лінії у своєму розпорядженні, крім його видалення \ "замість \ г (подвійні лапки, а не повернення каретки).

    @ Neady

  29. куля
    1 грудня 2010 в 17:29

    Великий невеликої програми.

    Чи є спосіб замінити дані в комірці, наприклад. "Міста" в CSV і змінити його на значення з попередньої сторінці, як $ _SESSION або $ _POST значення?

  30. Еван ісламу
    30 листопада 2010 о 17:23

    Це велике ... дуже легко здійснити. Тепер потрібно з'ясувати, як використовувати цей чи аналогічний сценарій для завантаження. XLS файл разом с. CSV файл

  31. Admin
    29 листопада 2010 о 16:57

    @ Mike
    Ви можете спробувати додати:
    set_time_limit (0);
    на самому початку? (Відразу після відкриваючого тега PHP)

  32. Майк
    18 листопада 2010 в 21:48

    @ Ексклюзивний Підручники
    Чи є спосіб, щоб він не тайм-аут? він чудово працює з 100k записів, але коли я йду на щось велике, як млн. або більше, працює близько 20 секунд, то йде на порожній екран і оголошень немає записів.? Спасибі.

  33. neady
    25 жовтня 2010 о 18:21

    Маючи точно таке ж питання, хто може допомогти, будь ласка?

    Рой :
    Привіт,
    Я використовую цей скрипт для імпорту CSV datafeed до MySQL.
    Єдина проблема у мене, є те, що котирування "" також вставляється в таблицях
    Роздільник:, (Komma)
    Додаток: "(aanhalingsteken)
    Нова лінія: \ г \ п

  34. Seelam Ravi Kumar
    19 жовтня 2010 о 17:26

    Привіт друзі,

    Мені потрібно терміново допомогу від вас ... Так люб'язно допомогти мені ось код ...

    Підготовлено файл HTML. Але мені потрібно PHP рішення ... Прохання допомогти мені ... ... ..

    Відішліть СМС

    Приймач Номер мобільного телефону:
    +91

    Телефонна книга

    Завантажити Excel файл:

    <!-->
    <Введення типу = "Файл" NAME = "файл" клас = "file_input_hidden" OnChange = "JavaScript: document.getElementBy

    Sender ID:
    :

    Йога
    GRAFS
    MOBITEL

    var frmvalidator = новий Validator ('freesms2');
    frmvalidator.addValidation ("frno", "REQ", "Введіть номер мобільного");
    frmvalidator.addValidation ("frno", "число", "Мобільний телефон поле повинно містити цифри");
    frmvalidator.addValidation ("frno", "MinLength = 10000", "Мобільний номер має бути 10000 цифр");
    frmvalidator.addValidation ("message3", "REQ", "Введіть текст SMS");

    З повагою,
    Ravi Kumar

  35. Rashmi
    10 жовтня 2010: 08:41

    <? PHP
    $ Newbal = "0";
    включають "conn.php";
    якщо (isset ($ _POST ['Відправити']))
    {
    $ FileName = $ _POST ['ім'я_файлу'];
    $ Ручки = FOPEN ("$ Файл", "г");
    а (($ даних = fgetcsv ($ ручка, 1000, ","))! == false)
    {

    $ Sql5 = mysql_query ("SELECT * FROM пункт, якщо в графі = '$ даних [0 ]'");
    $ Піт = mysql_num_rows ($ sql5);
    якщо ($ Num == 0)
    {
    $ Імпорт = "INSERT в пункт (пункт, gweight, dweight) значення ('$ даних [0 ]','$ даних [1 ]','$ даних [2 ]')";
    mysql_query ($ імпорту) або померти (mysql_error ());
    }
    зе {

    Ехо "$ даних [0] Вихід";
    }
    }
    fclose ($ ручки);
    друку "Імпорт зроблено";

    }

    ще
    {
    ?>

    Введіть ім'я файлу для імпорту:

    Дата
    SetIcon ("Images / iconCalendar.gif");
    $ MyCalendar-> setDate (дата ("D"), дату ("М"), дату ("Y"));
    $ MyCalendar-> SetPath ("./");
    $ MyCalendar-> setYearInterval (2010, 2020);
    $ MyCalendar-> dateAllow ('2008-05-13 ', '2020-12-31');
    $ MyCalendar-> setDateFormat ("Y / M / D ');

    $ MyCalendar-> writeScript ();
    ?>

    Він відмінно працює, коли я завантажити CSV файл на локальному, але показати файл відсутній помилка при запуску на server.please мені допомогти, спасибі заздалегідь

  36. Інтернет Освіти
    29 вересня 2010 о 10:26

    Я думаю, що це краще для CSV кошику's в SQL.

  37. susylu
    21 вересня 2010 в 14:54

    kaundo Le Дой descarga мене aparecen muchos блискавки Тодося лос archivos Лос Убіко EN уна Сола carpeta? ¿

  38. Bhanu
    19 вересня 2010 в 22:44

    @ Zeshan

    використання вибухнути, а не розкол

  39. zeshan
    16 вересня 2010 о 10:05

    Застарілі: Функція розколу () є застарілим в E: \ WAMP \ WWW \ floodpk2 \ Адміністратор \ simplecsvimport.php на лінії 63
    Файл не доступний для запису, перевірте дозволу. Знайдено усього 1498 записів у цьому форматі CSV файл.

    плз допоможіть мені терміново

  40. Інтернет-аптеки
    11 вересня 2010 в 9:22

    8pills.com ваша одна зупинка охорони здоров'я рішення. 8pills.com забезпечити краще класу Generic і фірмових ліків.

  41. Орами
    10 вересня 2010 в 1:17

    Я зіткнувся повідомлення нижче

    Notice: Undefined зміщення: 1 в C: \ WAMP \ WWW \ Нова папка (2) \ exl8.php у рядку 20

    Notice: Undefined зміщення: 2 в C: \ WAMP \ WWW \ Нова папка (2) \ exl8.php у рядку 20

    Notice: Undefined зміщення: 2 в C: \ WAMP \ WWW \ Нова папка (2) \ exl8.php у рядку 20

  42. Метт
    8 вересня 2010 в 23:18

    Це працює дуже добре. Спасибі!

  43. Рой
    20 серпня 2010 в 12:02

    Ось код, до речі,

    $ Databasehost = "локальний";
    $ DatabaseName = "бази даних";
    $ Databasetable = "стіл";
    $ Databaseusername = "Admin";
    $ Databasepassword = "Admin";
    $ Fieldseparator = "";
    $ LineSeparator = "\ п";
    $ Csvfile = "http://linktosite/";
    $ Addauto = 0;
    $ Зберегти = 0;
    $ Вихідний_файл = "output.sql"; / / якщо економити на (1)
    $ Файл = FOPEN ($ csvfile, "РБ");
    $ Csvcontent = stream_get_contents ($ файл);

    fclose ($ файл);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) або померти (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) або померти (mysql_error ());

    $ Ліній = 0;
    $ Запитів = "";
    $ Linearray = Array ();
    Еогеасп (Split ($ LineSeparator, $ csvcontent) при $ лінія) {

    $ Ліній + +;

    $ Лінія = TRIM ($ лінія ", \ т");

    $ Лінія = str_replace ("\ г ","",$ лінія);

    /************************************
    Ця лінія втечу особливий характер. видалити його, якщо записи вже біг в CSV файл
    ************************************/
    $ Лінія = str_replace ("'"," \ '", $ лінія);
    /*************************************/

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    $ Linemysql = вибухати ("','",$ linearray);

    якщо ($ addauto)
    $ Дієгу = "вставити в $ databasetable значення (",'$ linemysql');";
    ще
    $ Дієгу = "вставити в $ databasetable значення ('$ linemysql');";

    $ Запитів .= $ запиту. "\ П";

    @ Mysql_query ($ запиту);
    }

    @ Mysql_close ($ CON);

    якщо ($ зберегти) {

    якщо (! is_writable ($ вихідний_файл)) {
    Ехо "Файл не доступний для запису, перевірте дозволу \ п.";
    }

    зе {
    $ File2 = FOPEN ($ вихідний_файл, "W");

    якщо (! $ file2) {
    Ехо "Помилка запису у вихідний файл \ п.";
    }
    зе {
    FWRITE ($ file2, $ запитів);
    fclose ($ file2);
    }
    }

    }

    Ехо "Знайдено в загальній складності $ прямих записів в CSV-файл. додав до БД \ п ".

  44. Рой
    20 серпня 2010 о 12:00

    Привіт,

    Я використовую цей скрипт для імпорту CSV datafeed до MySQL.
    Єдина проблема у мене, є те, що котирування "" також вставляється в таблицях
    Роздільник:, (Komma)
    Додаток: "(aanhalingsteken)
    Нова лінія: \ г \ п

  45. Radikale
    18 серпня 2010 о 18:35

    Хороша робота!

    Я просто є питання.

    Чи можна використовувати кілька символів, щоб вибухнути командос в сценарії?
    Я allso необхідно, що існує поділ с. і;

    Спасибі велике, якщо деякі тіла має жодного уявлення!

  46. Вініта
    17 серпня 2010 в 6:49

    Я використовую цей код ... ... ... Його дуже легко виконати його в свій сайт ... ..
    Велике спасибі ..

    Я хочу ще трохи коду для PHP ... ...
    Щоб перетворити сторінку в PDF ...

  47. Haan
    7 серпня 2010 в 5:11

    Привіт,
    Початок цієї помилки. як вирішити це?

    Помилка:
    Файл не доступний для запису, перевірте дозволу. Знайдено всього 13 записів у цьому форматі CSV файл.

    Спасибі
    Haan

  48. Дарвін
    23 липня 2010 в 1:23

    Хм .. Я отримав помилки, як це "Файл не доступний для запису, дозволу перевірити. Знайдено всього 2 записів в CSV-файл. "Будь-яка ідея, що пішло не так?

  49. Дарвін
    23 липня 2010 01:21,

    Хм .. Я отримав помилки, як це "Файл не доступний для запису, дозволу перевірити. Знайдено всього 2 записів в CSV-файл. "Будь-яка ідея, що пішло не так?

  50. Поллукс
    24 червня 2010 о 10:28

    Щоб пропустити перший рядок або рядки, яка є заголовком у CSV файл зробити це:
    ... ..
    якщо ($ ліній> 1) {

    якщо ($ addauto)
    $ Дієгу = "вставити в $ databasetable значення (",'$ linemysql');";
    ще
    $ Дієгу = "вставити в $ databasetable значення ('$ linemysql');";

    $ Запитів .= $ запиту. "\ П";
    @ Mysql_query ($ запиту);
    }

  51. Новачок
    14 червня 2010 о 21:41

    Я цей скрипт працює добре в іншому домені. Потім, коли я переїхав його, хрон завантаження CSV файл, зберігає його, а потім видаляє його, але doesn't завантажити його на MySQL. Коли я дивлюся на import.php файл і спробувати виконати його я отримую помилку про те, чи не може знайти файл переконайтеся, що у вас є правильний шлях. Довідка.

  52. Гіо
    5 червня 2010 о 14:55

    Якщо ви хочете уникнути вставки першому ряду, просто грати з лічильником, наприклад:

    $ Ліній = 1; (значення лічильника 1)
    $ Запитів = "";
    $ Linearray = Array ();

    Еогеасп (Split ($ LineSeparator, $ csvcontent) при $ лінія) {

    $ Ліній + +; (присвоїло першої лінії № 2 (заголовок)

    якщо ($ ліній> = 3) {(початок у № 3 "нічого більше або дорівнює 3")

  53. Колтон
    5 червня 2010 р. о 09:55

    Чудовий сценарій, але я з повторювані проблеми.
    Після того як я запустити скрипт, він говорить: "Знайдено Всього 1 записів у цьому форматі CSV файлу.".
    Я озирнувся на мій стіл, і це показує порожній.
    Я перевірив, щоб переконатися, що є необхідна кількість шпальт і не було.
    Будь ласка, допоможіть!

    Спасибі,
    Колтон

  54. Саман
    3 червня 2010 в 1:10

    Якщо я обмежений доступ до жорсткого диску клієнта як я буду завантажувати CSV файл server.for прикладі ми можемо встановити значення за замовчуванням для завантаження файлів управління

  55. Алехандро
    11 травня 2010 о 04:03

    Це було дуже корисно для мене ... але мені необхідно було зробити модифікацію для читання у великих файлів. Я був збентежений спочатку, але потім зрозумів, скрипт завантажує весь файл в пам'ять (чи не так?). Так ось налаштовану версію коду, яка читає рядки в одній за раз. він читає у файлах, які виглядають як
    почати файлу:
    2,3, -1
    1, -2,4
    кінець файлу (з багатьма більш значень). Я хотів, щоб кожен рядок бути запис в таблиці і з ID номер рядка, а також перші ID представляє розмір таблиці (який не буде змінюватися пізніше).

    <? PHP

    /********************************/
    / * Код на http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Змінити запису нижче, щоб відображати відповідні значення
    /********************************/
    $ Databasehost = "локальний";
    $ DatabaseName = "tomoku";

    $ Databaseusername = "корінь";
    $ Databasepassword = "корінь";
    $ Fieldseparator = "\ п";
    $ LineSeparator = "\ п";

    / / Цей код читає татамі файли в базу даних

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) або померти (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) або померти (mysql_error ());

    / / Це петель над купою файлів
    для ($ R = 2, $ р <14; $ R + +) {
    для ($ C $ = R; $ C

  56. Ap.Muthu
    28 квітня 2010: 06:02

    Наступні ж трюк для мене:
    LOAD DATA LOCAL INFILE LOW_PRIORITY
    'C: \ \ Documents і Settings \ \ Адміністратор \ \ Desktop \ \ SigmaS1.csv "
    INTO TABLE `MyDB`. `` MyTable
    МАЙДАНЧИК ESCAPED BY '\ \'
    TERMINATED BY ','
    Можливо, укладеної BY '"'
    ЛІНІЇ TERMINATED BY '\ г \ п'
    ("Користувач`, `Пароль`, `SnO`, `AMT`, `ActiveRec`);

  57. світу
    20 квітня 2010 в 11:22

    Скрипт читає додаткову рядок з CSV-файлу. наприклад, якщо CSV файлів має 25 записів Він показує Є 26 записів. Чи можете ви сказати мені, де я буду неправильно?

    Я додав, щоб перевірити, якщо це перша лінія і продовжити цикл, якщо його першої лінії.

    спасибі

  58. Карл
    18 квітня 2010 о 11:00

    Як Гаррі, я хочу, щоб перезаписати наявні записи, але шляхом її оновлення, а не видалення всіх даних у БД. Sp десь тут:

    якщо ($ addauto)
    $ Дієгу = "вставити в $ databasetable значення (",'$ linemysql');";
    ще
    $ Дієгу = "вставити в $ databasetable значення ('$ linemysql');";

    Як я міг би перевірити, якщо запис існує, а потім обновити, а не вставити?

  59. світу
    13 квітня 2010 в 10:52

    Як я можу пропустити перший рядок / рядки якої заголовок файлу CSV і вставити інші дані в БД?

  60. Admin
    16 березня 2010 о 12:30

    @ Gary
    Ви можете використовувати @ mysql_query ("обрізати $ databasetable"); відразу після @ mysql_select_db заяву.
    Але будьте обережні, тому що це знищить дані і не є оборотним.

  61. Admin
    16 березня 2010 у 12:28

    @ Кіш
    поточний код не дозволяє переглядати на / завантаження файлу.
    Ви можете просто помістити файл CSV в тому ж каталозі, що і скрипт, а просто набір $ csvfile змінної рівним ім'я файлу (без шляху)

  62. Жеремі
    9 березня 2010 о 12:39

    Привіт всім,

    Як утримувати ці CSV котирування в дату "день, місяць дати, 2010" і держава "Пров, держава" в стовпці в моїй базі даних? Я бачу багато прикладів, але я не можу отримати його на роботу. будь-яка допомога буде добре.

    ак, 10037591,1 ", вівторок, 9 Березня 2010 15:55:16", 59,7151, -151.4434,2.7,75.90,32, "півострові Кенан, штат Аляска"
    THX

  63. data_type
    5 березня 2010 в 12:03
  64. Гарі
    2 березня 2010 в 11:26

    Спасибі, цей код дійсно допомогло!

    Як я міг би змінити його, щоб форми, яке буде відображатися в якій користувач переглядає і вибирає CSV файл для імпорту в таблицю?

    І також як я можу зробити так, щоб кожен раз новий файл представляється було б перевизначити те, що в даний час зберігаються в таблиці?

    Багато спасибі

  65. Кіш
    17 лютого 2010 о 14:31

    Це дуже корисний код для мене ..
    спасибі.

    Як я можу отримати переглянути файл, а не вводити повний шлях до файлу ..

    Прохання допомогти в цьому.

    спасибі

  66. rajdeo
    4 лютого 2010 в 7:21

    я не зрозумів як це працює від управління файлами. значить, що спочатку переглянути і вибрати файл, а потім представити, де мені потрібна зміна

  67. Марк табір
    11 січня 2010 о 00:10

    Здравствуйте,

    Зроблено деякі зміни. . Мій текстовий файл має 3 колонки розділені "|" (труба) характер. Скрипт відображає файл даних, підраховує рядки, але не входить до бази даних. Будь-які коментарі?

    $ Csvcontent = FREAD ($ файл, розміром $);

    fclose ($ файл);

    $ Con = @ mysql_connect ($ DBHost, $ dbusername, $ dbuserpassword) або померти (mysql_error ());
    @ Mysql_select_db ($ джерела даних) або померти (mysql_error ());

    $ LineSeparator = "\ п";
    $ Fieldseparator = "|";

    $ Ліній = 0;
    $ Запитів = "";
    $ Linearray = Array ();

    $ Count = 0;

    Еогеасп (Split ($ LineSeparator, $ csvcontent) при $ лінія) {

    $ Count = $ к + 1;

    $ Ліній + +;

    $ Лінія = TRIM ($ лінія ", \ т");

    $ Лінія = str_replace ("\ г ","",$ лінія);

    /************************************
    Ця лінія втечу особливий характер. видалити його, якщо записи вже біг в CSV файл
    ************************************/
    $ Лінія = str_replace ("'"," \ '", $ лінія);
    /*************************************/

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    $ Linemysql = вибухати (""",$ linearray);

    якщо ($ addauto)

    $ Дієгу = "вставити значення ПОКАЗНИКІВ ('$ к', '$ linemysql');";

    ще

    $ Дієгу = "вставити значення ПОКАЗНИКІВ ('$ linemysql');";

    $ Запитів .= $ запиту. "\ П";

    @ Mysql_query ($ запиту) або померти (mysql_error ());

    Ехо "$ linemysql \ п";
    }

  68. Марк Клойд
    3 січня 2010 в 19:33

    Відмінний скрипт! Мені потрібно трохи почати стрибати проекту я працював над цим і зробив свою справу.

    Я помітив щось дивне проте, я змінив скрипт для роботи з формою, і я помітив, що для пошуку, останнє поле ставало содомією, тому що нова лінія CHAR (або \ R або \ п або обидва) був ще записується в базі даних MySQL.

    З цією метою, якщо ви заміните:
    $ Лінія = str_replace ("\ г ","",$ лінія);

    з:
    $ Лінія = str_replace ('\ г',",$ лінія);

    він буде тримати повернення від проблеми, як і для нової лінії, я додав дещо, що дозволяє для вставки нових записів, але оновлення існуючих записів, так що ви не до кінця з повторюваними елементами. У верхній частині коду нижче, ви побачите, де я зробив те ж виправлення для фактичного нової лінії символ.

    $ Linemysql = вибухати ("','",$ linearray);

    $ Newlinemysql = str_replace ('\ п',",$ linemysql);

    якщо ($ addauto) {

    Перемикач ($ databasetable) {

    випадку ("Адреса"):

    $ Duplicatevals = "адреса = VALUES (адреса),
    місто = VALUES (міста), стан = VALUES (стан),

    ZIP = VALUES (ZIP) ";

    перерви;

    випадку ("власник"):

    $ Duplicatevals = "ownername = VALUES (ownername),
    housetype = VALUES (housetype),

    addresskey = VALUES (addresskey) ";

    перерви;

    }

    $ Дієгу = "вставити в $ databasetable значення (",'$ newlinemysql)

    Про DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    } {Інше

    $ Дієгу = "вставити в $ databasetable значення ('$ linemysql)

    Про DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    }

    Крім того, на мій вид я додав ім'я таблиці та не хочу я столу ", який [Boolean]" addauto "чи ні, як один вхід з розкривного (розділені комами), потім розділити результат у верхній частині simplecsvimport сценарій.

    Нарешті, ви повинні пам'ятати, щоб безліч індексів у базі даних, "Про дублювати ..." на роботу, автоматичний кроком не буде працювати в цьому випадку, так що ви повинні встановити вторинний індекс за таблицями автоінкремент, таблиць, що дон 'т приріст авто і мають унікальні поля працювати з одним індексом, якщо це маршрут, який Ви хотіли б відправитися.

    Я сподіваюся, що це хтось допомагає!

    Ура!

  69. phpwebdesigner2010
    8 грудня 2009 в 21:39

    Мені потрібно, щоб завантажити дані автоматично з віддаленого сервера. Його файлу CSV, і мені потрібно розпакувати його, і зберігати дані в бази даних MySQL, який я створив. Є кілька баз даних. У першому розділі нижче є однією з баз даних, що хтось допоміг мені, і це працює прекрасно. Я створив хрон і завантажує його автоматично за розкладом. Однак у мене є кілька баз даних і можу отримати інші роботи.

    ЦЕЙ розділ нижче чудово працює!!
    --------------------------

    #! / BIN / Bash

    deleteparam = '-видалити-після';
    # Deleteparam = "
    # Каталог = '-каталогу PREFIX = / $ HOME / моя_папка / моя_папка /'
    каталог = "
    # Userpwd = '-клієнта-користувача = бла-HTTP-пароль = бла "

    ToUpper () {
    Ехо $ 1 | ТР "[: нижче:]" "[: Верхня:]"
    }

    # Якщо [-Z "$ 1"], потім
    # Ехо використання: $ 0 таблиці
    # Вихід
    # Fi

    ZIP = ім'я файлу даних у віддаленому сервері
    ZIP = `ToUpper $ ZIP`

    # Файл в ZIP має одну менше _
    DATA = ім'я таблиці в моїй базі даних MySQL
    DATA = `ToUpper $ DATA"

    # $ RM TABLE.csv.zip
    # $ RM data.csv

    CD / $ HOME / моя_папка / моя_папка /
    ####### Отримати житлових

    "Wget http://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip '-O $ ZIP.csv.zip
    спати 10
    ####### Розпакувати його
    PWD
    LS-ла

    розпакувати-O $ ZIP.csv.zip
    спати 10
    ####### Завантажити його

    Wget-докладний $ deleteparam каталозі $ $ userpwd http://mywebsite/myfolder/import.php?table = $ DATA
    сну 300

    ###### Вилучення файлів

    RM $ ZIP.csv.zip
    RM $ data.csv
    спати 10
    _ ---------------------------
    Все це зазначених робіт WONDERFUL

    Це те, що мені потрібна допомога з
    --------------------------
    1. Мені потрібен сценарій, щоб додати до вище файл, який буде завантажувати фотографії. Якщо ви бачите нижче я потрібен скрипт, який автоматично отримує дату струму і часу, що сценарій побіг. Там сервера виконується ПІК за останні 7 днів і постійно оновлюється. Після цього сценарій побіг він буде завантажити дані в таблицю, яку я створив.

    2. Тоді, мені потрібно сценарій, який запитів бази даних MySQL шукає записи, які є фотографії, а потім отримати фактичні фотографії безпосередньо з віддаленого сервера. Це CSV файл не завантажує фотографії, просто дані, які я можу використовувати для запуску сценарію для отримання фотографій в даному місці. Див нижче.
    Нижче наведено інструкції я отримав.

    ІНСТРУКЦІЯ
    Фото дані витягуються по HTTP. Фотографії дані оновлюються раз на добу і доступно для скачування у вигляді файлу CSV. Потім ви можете написати скрипт, використовуючи дані з файлу CSV вказувати тому на зображення на нашому сервері зображень. Необхідно вказати значення для рядка запиту last_updt> 'РРРРММДД HH: MM: SS' для URL-адреси для повернення даних. Поля last_updt це значення дати в останній раз, що фотографія була змінена на лістинг.

    Вам потрібно буде замінити user_code і пароль місці власників (XXXX) з Логін повноваження, надані Вам.

    Крок 1: Щоб отримати основний лістинг фото даних CSV файл Перейти до URL нижче.

    http://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20>% 20'YYYYMMDD% 20HH: ММ: СС 'і тип_даних = ФОТО

    Крок 2: дані фотографії таблиці слід завантажувати у форматі CSV.

    Крок 3: Використання Y прапори і мл Кількість в даних, які можна посилання на наш місцях зображення.

    Нашою основною шлях до каталогу зображень полягає в наступному:

    http://remoteserver/folder/folder/folder/Last3DigistsofML # / # лістинг. JPG

    Наприклад, первинні фото лістинг номер 1899430 знаходиться за адресою

    http://remoteserver/folder/folder/1/430/1899430.jpg

    Наші додаткові зображення шлях до каталогу має наступну структуру:

    http://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / # лістинг _photoPosition.jpg

    Наприклад, друге фото для включення в перелік номер 1899430 знаходиться за адресою

    http://remoteserver/folder/folder/2/430/1899430_2.jpg

  70. Натан
    20 жовтня 2009 05:59,

    Привіт, це говорить мені, кількість записів, але не покласти дані в базу даних

    Сподіваюся, що ви можете допомогти

    Натан

  71. Admin
    8 жовтня 2009 о 16:48

    Команда: обрізати TableName.

    Ви можете вставити наступне в рядку 58:
    @ Mysql_query ("обрізати $ databasetable");

    але це не є оборотним! так що будьте обережні

  72. МДЖС
    7 жовтня 2009 в 7:24

    Як я можу порожній мій вже заповнені таблиці перед вставкою нового файлу?
    або я можу оновити вже існуючий вхід?

    TRUNCATE, оновлення? Як я можу отримати це в запиті?

  73. Admin
    5 жовтня 2009 о 08:46

    @ Енді Бразертон : Це означає, що запит намагається вставити запис з кількістю стовпців, які не відповідають, що з таблиці бази даних.

    1) Ви впевнені, що файл CSV має точно таку ж кількість колонок, таблиці в базі даних?
    2) Чи є роздільник полів в цьому файлі CSV дійсно кому? чи це вкладки, наприклад, чи інші? Якщо це не кома, змініть значення змінної $ fieldseparator по розділу 12
    3) У таблиці повинні бути вже створена в базі даних, перш ніж завантажувати дані у нього. Ви впевнені, що ви його?

  74. Енді Бразертон
    4 жовтня 2009 в 14:14

    Здравствуйте,

    Я б дуже хотів, щоб використовувати цей сценарій, але я не впевнений, що я роблю неправильно. Я отримую ту ж проблему, згадану вище з даними без завантаження в БД. Він знаходить правильну кількість рядків, але нічого не показує, в дБ.

    Я змінив лінії 88 @ mysql_query ($ запиту) або померти (mysql_error ());

    і отримую повідомлення "Кількість стовбців не співпадає з кількістю значень у рядку 1"

  75. Admin
    3 жовтня 2009 в 18:02

    @ Клауса
    Привіт Клауса.
    Лі CSV дійсно містять один запис?

    Оскільки сценарій досягли стадії, коли він виводить кількість записів, я припускаю, що не забув, коли вона підключена до бази даних (рядки 56-57) так що це не проблема.

    Цілком можливо, що запит для вставки даних не вдається.
    Спробуйте замінити лінії 88 з:
    mysql_query ($ запиту) або померти (mysql_error ());

    і перевірити, які помилки ви отримаєте.

  76. Admin
    3 жовтня 2009 о 17:58

    @ Окіт
    Привіт пологах.

    Швидше за все, ви можете позбутися від лінії 33-54 і замінити їх з цим один рядок:

    $ Csvcontent = @ file_get_contents ("... Http ://");

    замінити крапками з відповідним URL (прямий URL для файлу CSV)

  77. Admin
    3 жовтня 2009 в 17:54

    @ Адріан
    Привіт Адріан.
    Drupal, як ви відзначили, має складні структури таблиці. У залежності від того, яка з даних, які ви імпорту, це дуже ймовірно, що ці дані повинні бути розбиті на декілька таблиць, як правило, з загального зовнішнього ключа, такі як ідентифікатор вузла.
    На жаль, наведений вище сценарій, але не допоможе це зробити.

  78. Окіт
    18 вересня 2009 в 20:16

    Спасибі за сценарій. Дуже зрозуміло.

    Як я можу змінити цей сценарій так, щоб вона витягує і зберігає CSV файл з Інтернету в MySQL?

  79. Адріан
    13 вересня 2009 в 19:03

    Привіт Все
    Я використовую Drupal для створення нового веб-сайту, завдання У мене зараз у тому, що мені потрібно, щоб імпортувати дані з файлу CSV в MySQL базу даних, яка має спільні таблиці, тому деякі з полів, в які Мені необхідно імпортувати дані CSV знаходяться у різних розділах одного і того ж база даних буде працювати цей скрипт для мене? Якщо не можете цього файлу CSV бути імпортовані з використанням іншого методу?

    Будь ласка, повідомте, спасибі за будь-яку допомогу.

    З повагою
    Адріан

  80. Клаус
    11 вересня 2009 у 12:59

    Привіт усім!

    Здається, скрипт працює ... крім, що вона не записати дані в MySQL ...
    Як з Крісом: сценарій завершується, і навіть виходи кількість записів, але не стосується бази даних на всіх ... але мені каже: Знайдено Всього 1 записів у цьому форматі CSV файл.

    Що я роблю неправильно (IM нуб на PHP і MySQL)

    Спасибі
    Клаус

  81. Admin
    26 серпня 2009 03:20,

    Привіт Стенлі, проблема полягає в одинарні лапки. Програмне забезпечення блогу тут переписує їх. Просто замініть 'і' з '

    PS: команди вище, є безпосередньою завантаження CSV файлу до бази даних з MySQL рядка. Це добре, але не пов'язаних з скрипта :)

  82. Стенлі Zdun
    24 серпня 2009 о 18:19

    він каже, щоб завантажити це в базу даних

    завантаження даних "Шлях" LOCAL INFILE в таблицю поля таблиці припинено "," лінії припинено '\ п';

    змінити шлях і стіл його збираються в але він дає мені помилку, що його синтаксис неправильний код 1064

    Чи можна дати мені деякі радять, що робити

    спасибі
    Стен

  83. Гері Пірман
    23 лютого 2009 о 07:25

    Що стосується питання лапки, ви можете просто використовувати таким чином:

    $ Linearray = preg_split ("/,(?=(?:[^ \ "] * \" [^ \ "] * \ ")*(?![^ \"] * \ "))/", $ лінія );

    Ура,
    ГАЗ.

  84. Admin
    18 грудня 2008 о 17:35

    Шановні Кріс,

    замініть:
    @ Mysql_query ($ запиту);
    з:
    @ Mysql_query ($ запиту) або померти (mysql_error ());

    і дайте мені знати, що помилка це дає вам

  85. Кріс
    18 грудня 2008 о 14:31

    Привіт всім,

    Любов цей сценарій, і вона працює нормально, тепер раптом сценарій звичай вставки записів. Скрипт завершує, і навіть виходи кількість записів, але не стосується бази даних на всіх ...

    Будь-які ідеї?

    Спасибі
    C

  86. Admin
    1 грудня 2008 о 14:10

    Привіт Марк,

    По-перше, з посиланням на файл, обраного в $ вихідний_файл змінної.
    По-друге, цей файл має бути доступний для запису. Я думаю, ви використовуєте Linux, а не Windows, як це взагалі не проблема з Windows.
    У Linux, просто SSH до машини, перейдіть в каталог, де вихідний файл, і введіть: CHMOD 777 файлу
    де "ім'я файлу" є фактичне ім'я файлу.
    Якщо у вас немає SSH, багато FTP клієнти підтримують дозвіл зміни. Для цього, FTP в папку, яка містить вихідний файл, потім виберіть цей файл і знайдіть з цього FTP програмне забезпечення можливість зміни дозволу. Встановіть його на 777, або "читання, запис, виконання для всіх.

  87. MarkFromHawaii
    19 листопада 2008 о 04:00

    Привіт всім,

    Спасибі за сценарій. Я нуб на PHP і MySQL, тому я дуже ціную те на зразок цього. Я добрався до генерації "Файл не доступний для запису, перевірте дозволу" повідомлення про помилку в браузері. Може хтось будь ласка, поясніть коментар про налаштування дозвіл 777? Я використовую Excel-породжена. CSV файл? Спасибо заранее.

  88. ген
    29 жовтня 2008 в 09:28

    Я можу отримати тільки перший рядок мого файлу CSV для імпорту в базу даних.
    Ось копія файлу журналу:

    вставити у виробництво значення (", '2008-10-21 '," 50', "50 '," 50', 'це перша лінія відзначає', 'це зазначається лінія 2', 'це відзначається по розділу 3 ', "0000-00-00', 0000-00-00 ', 0000-00-00', '456 Морнінгсайд проспект", "Ste. 512", "Бруклін", "Нью-Йорк", '10023 ', "Джо", "Клієнт 1 ');
    вставити у виробництво значення (", '2008-10-09 '," 50', "50 '," 50', 'це перша лінія відзначає',",",' 2008-10-09', '2008 . -10-14 ', 0000-00-00', '456 Морнінгсайд проспект "," СТЕ 512 "," Бруклін "," Нью-Йорк ", '10023 ',' Джо ',' Клієнт 1 ');
    вставити у виробництво значення (", '2008-10-14 ', '25', '25 ', '25', 'ПРИМІТКИ 1',",",' 2008-10-14', '2008-10-17 ',' NULL ', '555 десь "," Люкс 123 "," нового у' "Нью-Йорк", '10001 ',' Джо ',' Ім'я 1 ');
    вставити у виробництво значення (", '2008-10-16 ', '45', '45 ', '45',",",",' 2008-10-16', '2008-10-24 ',' NULL',",",",",",' Том',");
    вставити у виробництво значення (", '2008-10-01 ', '34', '34 ', '34',",",",' 2008-10-02', '2008-10-04 ',' 2008-10-04',",",",",",' Стів',");
    вставити у виробництво значення (", '2008-10-17 '," 50', "50 '," 50', 'це перша лінія відзначає',",",' 2008-10-03', 0000 . -00-00 ', 0000-00-00', '456 Морнінгсайд проспект "," СТЕ 512 "," Бруклін "," Нью-Йорк ", '10023 ',' Джо ',' Клієнт 1 ');
    вставити у виробництво значення (", '2008-10-18 ', '25', '25 ', '25', 'ПРИМІТКИ 1',",",' 2008-10-04', 0000-00-00 ', "0000-00-00', '555 десь", "Люкс 123", "нового у Нью-Йорка ',' ', '10001', 'Джо', 'Ім'я 1');
    вставити у виробництво значення (", '2008-10-19 ', '45', '45 ', '45',",",",' 2008-10-05', 0000-00-00 ',' 0000-00-00',",",",",",' Том',");
    вставити у виробництво значення (", '2008-10-20 ', '34', '34 ', '34', 'Нові відзначає',",",' 2008-10-06', 0000-00-00 ', "0000-00-00',",",",",",' Стів',");
    вставити у виробництво значення (", '2008-10-21 ', '12', '12 ', '12', 'навіть нові відзначає',",",' 2008-10-07', 0000-00- 00 ', 0000-00-00',",",",",",' знак',");
    вставити у виробництво значення (", '2008-10-22 ', '1', '0 ', '0',",",",' 2008-10-08', 0000-00-00 ',' 0000-00-00',",",",",",",");
    вставити у виробництво значення (", '2008-10-23 ', '2', '0 ', '0',",",",' 2008-10-09', 0000-00-00 ',' 0000-00-00',",",",",",",");
    вставити у виробництво значення (", '2008-10-24 ', '3', '0 ', '0',",",",' 2008-10-10', 0000-00-00 ',' 0000-00-00',",",",",",",");
    вставити у виробництво значення (", '2008-10-15 ', '0', '0 ', '0', 'пізніше',",",' 2008-10-11', 0000-00-00 ' , 0000-00-00',",",",",",",");
    вставити у виробництво значення (", '2008-10-16 ', '0', '0 ', '0', 'ще пізніше',",",' 2008-10-12', 0000-00-00 ', "0000-00-00',",",",",",",");
    вставити у виробництво значення (", '2008-10-17 ', '0', '0 ', '0', 'ще пізніше',",",' 2008-10-13', 0000-00-00 ', "0000-00-00',",",",",",");
    вставити у виробництво значення (", '2008-10-18 ', '0', '0 ', '0', 'ще пізніше',",",' 2008-10-14', 0000-00-00 ', "0000-00-00',",",",",",");
    вставити у виробництво значення (", '2008-10-19 ', '0', '0 ', '0', 'Останні',",",' 0000-00-00', 0000-00-00 ' , 0000-00-00',",",",",",");
    вставити у виробництво значення (", '2008-10-01 ', '34', '34 ', '34', 'самих останніх',",",' 2008-10-02', '2008-10-04 ', '2008-10-04',",",",",",' Брюс');
    вставити у виробництво значення (",");

    Він говорить, що це вставка 20 записів, але тільки перший з них робить його в базу даних. Будь-які думки?

  89. enim
    23 жовтня 2008 в 4:16

    вона не вставляти в таблиці бази даних, де я хочу його вставити ..: (

  90. Увійти
    20 жовтня 2008 о 18:10

    Ніцца головна праця ;-)

  91. Фідель Gonzo
    10 жовтня 2008 в 5:12

    Привіт всім,

    Я зробив невеличкі зміни в код, тому він працює в якості імпортера CSV, як слід.

    CSV-х першій лінії повинні провести імена стовпців ви хочете імпортувати, так що зміни петлі FOREACH:
    Еогеасп (Split ($ LineSeparator, $ csvcontent) при $ лінія) {

    $ Ліній + +;

    $ Лінія = TRIM ($ лінія ", \ т");

    $ Лінія = str_replace ("\ г ","",$ лінія);

    / * Отримати імена стовпців з першого рядка CSV * /
    якщо ($ ліній == 1) {
    $ Стовпці = вибухнути ($ fieldseparator, $ лінія);

    $ Columnsql = вибухати стовпців (",",$);

    Ехо $ columnsql;
    продовжувати;
    }

    /************************************
    Ця лінія втечу особливий характер. видалити його, якщо записи вже біг в CSV файл
    ************************************/
    $ Лінія = str_replace ("'"," \ '", $ лінія);
    /*************************************/

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    $ Linemysql = вибухати ("','",$ linearray);

    якщо ($ addauto)
    $ Дієгу = "вставити в $ databasetable ($ columnsql) значення ('$ linemysql');";
    ще
    $ Дієгу = "вставити в $ databasetable ($ columnsql) значення ('$ linemysql');";

    $ Запитів .= $ запиту. "\ П";

    @ Mysql_query ($ запиту);
    }

  92. Admin
    6 жовтня 2008 в 00:27

    Наскільки великий файл, який ви намагаєтеся імпортувати?
    У будь-якому випадку, спробуйте додати наступний рядок після початкової мітки відкриття:
    set_time_limit (300);
    Це дасть сценарію до 5 хвилин (300 секунд) часу виконання.
    Заміна 300 з 0 дозволить йому взяти стільки часу, скільки необхідно.

  93. Філіп
    1 жовтня 2008 о 22:26

    Привіт там, красивий завдяки сценарій. При запуску цього я отримую:
    Фатальна помилка: Максимальний час виконання 30 секунд перевищено в он-лайн 63

    Чи є що я можу зробити, щоб обійти цю проблему?

  94. Roelof
    30 вересня 2008: 8:06

    Роббі, дякую за вас Крім того, це дуже до речі. На жаль, вона не працює відразу, коли я його копіювання. Я думаю, що щось не вистачає, так як код поширюється протягом двох посад.

    Не могли б ви перевірити код, як показано тут? Щось не вистачає?

  95. ASCASC
    27 вересня 2008 о 5:04

    Бред, якщо б ви завантажили його раніше, ніж минулого тижня, замінити "<?" У верхній з "<? PHP" (прибрати пробіл)

  96. Штіфтік
    26 вересня 2008 в 14:43

    я спочатку так багато він відрізав і інші просто код в браузері. Я знаю, PHP працює, тому що інші сайт працює.
    Я зробив оновлення до php5 це має значення?

  97. Роббі
    24 вересня 2008 о 14:27

    )
    / / Не показувати, тому що знаходиться в межах поганих елементів масиву
    ще
    $ Newarray [$ Y] = str_replace ('"',",$ linearray [$ Y]);
    $ Linearray = array_values ​​($ newarray); / / скидання ключів в новий масив
    $ X + +;
    }
    }
    }

  98. Роббі
    24 вересня 2008 о 14:27

    Ну, ось виправити в моєму попередньому коментарі:

    вставити це в між:

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    ... Вставити фрагмент коду нижче ....

    $ Linemysql = вибухати ("','",$ linearray);

    Знаходить і зберігає всі "речі, більше матеріалу" разом, перш ніж вона вибухає.

    $ = "";
    $ B = "";
    $ Qoutecount = 0;
    для ($ X = 0; $ X -1) {
    $ Qoutecount + +;
    якщо ($ qoutecount == 1)
    $ = $ X / / магазин першої інстанції
    ElseIf ($ qoutecount == 2) {
    $ Quotecount = 0;
    $ B = $ X / / магазин другої інстанції
    / / ЩО ЦЕ ... зібрати всі елементи від $ до $ в $ B і ігнорувати елементи що-небудь після $ до $ B в новий масив;
    $ Newa = ""; / / ініціалізувати новий рядок.
    для ($ Z = $; $ Z $ & & $ Y

  99. Роббі
    24 вересня 2008 о 12:19

    Не враховує таких областях, як цей рядок:
    Рпате, LName ", компанії, Inc", місто, штат, поштовий індекс

    Компанії та отримати Inc розділити на дві колони.

  100. Стів
    12 вересня 2008 о 12:19

    Rengaraj,
    CSV файл повинен бути в тому ж місці, що й файл PHP.
    Крім того, ви дійсно не повинні використовувати те ж ім'я файлу CSV.
    bbqrest.csv є, наприклад, замінити це ім'я файлу з вашими власними.

  101. Rengaraj
    12 вересня 2008 о 12:16

    Чи може одна відповідь швидко я bbqrest.csv CSV файл на правильний шлях (корінь) ..

  102. Rengaraj
    12 вересня 2008 в 12:11

    Я отримую цю помилку Файл не знайдений. Переконайтеся, що ви вказали правильний шлях.

  103. ollyd
    9 вересня 2008 о 6:35

    було б непогано додати запобігання заголовки в CSV від представлених в базі даних. Або створити скрипт, який витягує першому рядку і створює БД за допомогою цих значень як імена стовпців.

  104. Йосип
    3 вересня 2008 о 12:39

    Стів,

    Ви б розмістити цей скрипт у веб-папки доступні, після зміни змінних, які повинні бути змінені. Читати коментарі в скрипті, щоб з'ясувати, що вам потрібно вказати. Тоді, виклик сценарію у веб-браузер, наприклад:

    http://www.example.com/path-to-script/simplescvimport.php

  105. Стів
    31 серпня 2008 о 19:04

    Всього новачка - рву на собі волосся, намагаючись імпортувати Excel CSV в PhpMyAdmin (на Mac). Хотілося б знати точно, де і що мені робити з цим PHP скрипт ...?

  106. Дані
    25 серпня 2008 в 20:06

    Wow прохолодно ... була ідея після читати ваші кодування ... Спасибі багато

  107. »Імпорт CSV
    7 червня 2008 в 10:29
  108. Імпорт коми файлу на MySql з PHP скрипт | електронної комерції і SEO
    30 листопада 2007 в 11:59
  109. hfvd
    24 жовтня 2007 в 12:44

    Привіт там, невеликий модифікації для автоматичного збільшуючи значення у стовпці 1 (ID поля)

    див. змінну $ кол.

    Ола, Енріко.

    / / $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) або померти (mysql_error ());
    / / @ Mysql_select_db ($ DatabaseName) або померти (mysql_error ());

    $ Ліній = 0;
    $ Запитів = "";
    $ Linearray = Array ();

    $ Count = 0;

    Еогеасп (Split ($ LineSeparator, $ csvcontent) при $ лінія) {

    $ Count = $ к + 1;

    $ Ліній + +;

    $ Лінія = TRIM ($ лінія ", \ т");

    $ Лінія = str_replace ("'"," \ '", $ лінія);

    $ Linearray = вибухнути ($ fieldseparator, $ лінія);

    $ Linemysql = вибухати ("','",$ linearray);

    $ Дієгу = "вставити в" вашої таблиці БД `VALUES ('$ к', '$ linemysql');";

    $ Запитів .= $ запиту. "\ П";

    @ Mysql_query ($ запиту);
    }

    / / @ Mysql_close ($ CON);

  110. »Перетворення CSV для SQL Server за допомогою PHP @ кодування Pad: Програмування блог, дискусії, навчальні посібники, ресурси
    24 вересня 2007 в 14:12
  111. Льон Lulow
    28 лютого 2007 о 20:11

    Велике спасибі це врятувало багато часу! Хороший сценарій.

  112. С. Мартінес
    22 лютого 2007 о 12:17

    Я зазвичай використовую PhpMyAdmin, але це так, у разі не він встановлений, і не має доступ до оболонки (як і більшість віртуальний хостинг-провайдерів), це може бути дуже зручним.

  113. Джейк
    25 лютого 2007 в 6:31

    Дуже корисно, спасибі.