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

Это простой скрипт, который позволит вам импортировать CSV-данных в базе данных. Это происходит удобно, потому что вы можете просто отредактировать соответствующие поля, загрузите его вместе с CSV-файл и вызывать ее из Сети, и он будет делать все остальное.

Это позволяет задать разделитель в этом CSV-файла, является ли это кому, вкладки и т.д. Она также позволяет вам выбрать разделитель строк, позволяет сохранять вывод в файл (известный как данных SQL дамп).

Это также позволяет Вам включать пустые поля в начале каждой строки, которые, как правило, целыми Автоинкремент первичный ключ.

Этот сценарий обычно полезен, если у вас нет PhpMyAdmin, или вы не хотите хлопот входа в систему и предпочитают несколько кликов решение, или Вы просто командной строке парень.
Просто убедитесь, что таблица уже создана, прежде чем пытаться сбросить данные.
Пожалуйста, ваши комментарии, если вы получили какой-либо отчет об ошибке.

Скачать файл здесь

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

    Великий сценарий! Tnx много

  3. Umair
    2 мая 2011 в 07: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', $ ссылке) или умереть ("Невозможно выбрать БД");

    / / https://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Код на https://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 в 09: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 / \ $ конца / /.

    возвращения ($ файл), если $ файл;

    /********************************/
    / * Исходный код на https://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 в 09: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 в 09:22

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

  41. Орам
    10 сентября 2010 в 01: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 = "https://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 в 06: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

    /********************************/
    / * Код на https://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 в 07: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 сценарий.

    Finally, you have to remember to set indexes in the database for the, “ON DUPLICATE…” to work, auto increments will not work in this case, so you have to set a secondary index on the auto increment tables, the tables that don't auto increment and have unique fields work with the single index if that is the route you would like to go.

    I hope this helps someone!

    Ура!

  69. phpwebdesigner2010
    Dec 8th, 2009 at 21:39

    I need to download data automatically from a remote server. Its a CSV file, and i need to unzip it, and store the data in a mysql database that i created. There are multiple databases. The first section below is one of the databases that someone helped me with and it works wonderfully. I set up a cron job and it downloads it automatically as scheduled. However i have more databases and cant get the others to work.

    THIS SECTION BELOW WORKS FINE!!!!
    —————————————————————————–

    #!/bin/bash

    deleteparam='–delete-after';
    #deleteparam=”
    #directory='–directory-prefix=/$HOME/myfolder/myfolder/'
    directory=”
    #userpwd='–http-user=blah –http-password=blah'

    toUpper() {
    echo $1 | tr “[:lower:]” “[:upper:]”
    }

    #if [ -z "$1" ]; then
    # echo usage: $0 table
    #exit
    #fi

    ZIP=name of data file in remote server
    ZIP=`toUpper $ZIP`

    #the file within the zip has one less _
    DATA=name of table in my mysql database
    DATA=`toUpper $DATA`

    #rm $TABLE.csv.zip
    #rm $DATA.csv

    cd /$HOME/myfolder/myfolder/
    #######get the residential

    wget ' https://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip ' -O $ZIP.csv.zip
    sleep 10
    #######unzip it
    pwd
    ls -la

    unzip -o $ZIP.csv.zip
    sleep 10
    #######load it

    wget –verbose $deleteparam $directory $userpwd https://mywebsite/myfolder/import.php?table=$DATA
    sleep 300

    ######delete the files

    rm $ZIP.csv.zip
    rm $DATA.csv
    sleep 10
    _———————————————————————————
    ALL OF THIS ABOVE WORKS WONDERFUL

    THIS IS WHAT I NEED HELP WITH
    —————————————————————————-
    1. I need a script to add to the above file that will download the photos. If you see below i need a script that automatically gets the CURRENT date and time that the script is ran. There server holds pic from the last 7 days and is constantly updated. Once this script is ran it will download the data into the table that i created.

    2. Then, I need a script that queries the mysql database looking for entries that have photos and then retrieve the actual photos directly from their remote servers. This csv file DOES NOT download photos, just data that i can use to run a script to retrieve the photos at a given spot. См. ниже.
    Below are the instructions I received.

    ИНСТРУКЦИЯ
    Photo data is retrieved by HTTP. The photos data is updated once daily and is available for download as a CSV file. You can then write a script using the data from the CSV file to point back to the images on our image server. YOU MUST SUPPLY A VALUE FOR THE QUERY STRING last_updt > 'YYYYMMDD HH:MM:SS' for the URL to return data. The field last_updt is the date value for the last time that a photo was changed on the listing.

    You will need to replace the user_code and password place holders (XXXX) with the login credentials provided to you.

    Step 1: To retrieve the primary listing photo data CSV file go to the URL below.

    https://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt%20>%20'YYYYMMDD%20HH:MM:SS'&data_type=PHOTOS

    Step 2: The photos table data should download in a CSV format.

    Step 3: Using the Y flags and the ML Number in the data you can link back to our image locations.

    Our primary image directory path is as follows:

    https://remoteserver/folder/folder/folder/Last3DigistsofML#/listing#.jpg

    For example- The primary photo for listing number 1899430 is located at

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

    Our additional image directory path structure is as follows:

    https://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML#/listing#_photoPosition.jpg

    For example- The second photo for listing number 1899430 is located at

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

  70. Натан
    Oct 20th, 2009 at 05:59

    Hi, it tells me the record count but not putting data into database

    Hope you can help

    Натан

  71. Admin
    Oct 8th, 2009 at 16:48

    the command is: truncate tablename.

    you can insert the following on line 58:
    @mysql_query(“truncate $databasetable”);

    but this is non reversible! so be careful

  72. maff
    Oct 7th, 2009 at 07:24

    how can i empty my already filled table before inserting the new file?
    or can i update an already existing input?

    TRUNCATE, UPDATE? how do i get this in the query?

  73. Admin
    Oct 5th, 2009 at 08:46

    @Andy Brotherton : This means that the query is attempting to insert a record with a number of columns that do not match that of the database table.

    1) Are you sure that the CSV file has the exact same number of columns as the table in the database?
    2) Is the field separator in this CSV file really a comma? or is it a tab for instance or other? If it's not a comma, change the value of $fieldseparator on line 12
    3) The table need to be already created in the database before attempting to load data into it. Are you sure you have it?

  74. Andy Brotherton
    Oct 4th, 2009 at 14:14

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

    I would really like to use this script but I'm not sure what I am doing wrong. I get the same problem mentioned above with data not loading into the db. It finds the correct number of rows but nothing shows in the db.

    I changed line 88 @mysql_query($query) or die(mysql_error());

    and get this message “Column count doesn't match value count at row 1″

  75. Admin
    Oct 3rd, 2009 at 18:02

    @Claus
    Hello Claus.
    Does the CSV really contain a single record?

    Since the script reached the stage where it outputs the number of records, I assume it didn't fail when it connected to the database (lines 56-57) so that is not the problem.

    It is possible that the query to insert data is failing.
    Try replacing line 88 with:
    mysql_query($query) or die(mysql_error());

    and check what error you get.

  76. Admin
    Oct 3rd, 2009 at 17:58

    @Okoth
    Hello Okoth.

    Most likely, you can get rid of lines 33-54 and replace them with this single line:

    $csvcontent = @file_get_contents("https://. . .");

    replace the dots with the appropriate url (direct url to the CSV file)

  77. Admin
    Oct 3rd, 2009 at 17:54

    @Adrian
    Hello Adrian.
    Drupal, as you noted, has complex table structures. Depending on what sort of data you are importing, it's very likely that this data needs to be split into multiple tables, usually with a common foreign key such as the node id.
    Unfortunately, the script above wouldn't help do that.

  78. Okoth
    Sep 18th, 2009 at 20:16

    Thanks for the script. Very understandable.

    How can I modify this script so that it fetches and store a csv file from the Internet into MySQL?

  79. Adrian
    Sep 13th, 2009 at 19:03

    Привет Все
    I am using drupal to build a new website, the challenge I am having right now is that I need to import data from a CSV file into a mysql database which has shared tables, therefore some of the fields into which I need to import csv data are in different sections of the same database will this script work for me? If not can this csv file be imported using another method?

    Please advise, thank you for any assistance.

    С уважением
    Адриан

  80. Claus
    Sep 11th, 2009 at 12:59

    Привет всем!

    Seem to have the script working…exept that it does not write data to the mysql…
    Like with Chris: The script completes, and even outputs the record count, but doesn't touch the database at all… but tells me: Found a total of 1 records in this csv file.

    What do I do wrong (im a noob at php and mysql)

    Спасибо
    Claus

  81. Admin
    Aug 26th, 2009 at 03:20

    Hi Stanley, the problem is with the single quotes. The blog software here rewrites them. Simply replace ' and ' with '

    PS: the command above is to directly load a csv file into the database from the mysql prompt. This is nice but not related to the script above :)

  82. Stanley Zdun
    Aug 24th, 2009 at 18:19

    it says to load this into the data base

    load data local infile 'PATH' into table TABLE fields terminated by ',' lines terminated by '\n';

    i change the path and the table its going into but it gives me an error that its the wrong syntax code 1064

    can anyone give me some advise on what to do

    спасибо
    Стэн

  83. Gary Pearman
    Feb 23rd, 2009 at 07:25

    With regards to the quotes issue, you can just use this:

    $linearray = preg_split(“/,(?=(?:[^\"]*\”[^\"]*\”)*(?![^\"]*\”))/”, $line);

    Ура,
    Gaz.

  84. Admin
    Dec 18th, 2008 at 17:35

    Dear Chris,

    please replace:
    @ Mysql_query ($ запроса);
    with:
    @mysql_query($query) or die(mysql_error());

    and let me know what error it gives you

  85. Крис
    Dec 18th, 2008 at 14:31

    Hey Everyone,

    Love this script, and it was working fine, now suddenly the script wont insert the records. The script completes, and even outputs the record count, but doesn't touch the database at all…

    Любые идеи?

    Спасибо
    C

  86. Admin
    Dec 1st, 2008 at 14:10

    Привет Марк,

    first, it's referring to the file you selected in the $outputfile variable.
    second, this file needs to be writable. I assume you're using Linux, not windows, as this is generally not an issue with windows.
    On linux, simply SSH to the machine, change to the directory where the output file is, and type: chmod 777 filename
    where 'filename' is the actual file name.
    If you don't have SSH, many FTP clients support permission change. For this purpose, FTP to the folder containing the output file, then select this file, and locate from this ftp software the option to change permission. Set it to 777, or 'read, write, execute' for everyone.

  87. MarkFromHawaii
    Nov 19th, 2008 at 04:00

    Привет всем,

    Thanks for the script. I'ma noob at PHP and MySQL so I really appreciate something like this. I got as far as generating the “File is not writable, check permissions” error message in my browser. Can someone please explain the comment about setting the permission to 777? I'm using an Excel-generated .csv file? Спасибо заранее.

  88. gene
    Oct 29th, 2008 at 09:28

    I can only get the first line of my CSV file to be imported into the database.
    Here's a copy of the log file:

    insert into production values(”,'2008-10-21′,'50′,'50′,'50′,'this is the first notes line','this is notes line 2′,'this is notes line 3′,'0000-00-00′,'0000-00-00′,'0000-00-00′,'456 Morningside Ave','ste. 512′,'Brooklyn','NY','10023′,'Joe','Customer 1′);
    insert into production values(”,'2008-10-09′,'50′,'50′,'50′,'this is the first notes line',”,”,'2008-10-09′,'2008-10-14′,'0000-00-00′,'456 Morningside Ave','ste. 512′,'Brooklyn','NY','10023′,'Joe','Customer 1′);
    insert into production values(”,'2008-10-14′,'25′,'25′,'25′,'NOTES 1′,”,”,'2008-10-14′,'2008-10-17′,'NULL','555 somewhere','suite 123′,'new york','new y','10001′,'Joe','Name 1′);
    insert into production values(”,'2008-10-16′,'45′,'45′,'45′,”,”,”,'2008-10-16′,'2008-10-24′,'NULL',”,”,”,”,”,'Tom',”);
    insert into production values(”,'2008-10-01′,'34′,'34′,'34′,”,”,”,'2008-10-02′,'2008-10-04′,'2008-10-04′,”,”,”,”,”,'Steve',”);
    insert into production values(”,'2008-10-17′,'50′,'50′,'50′,'this is the first notes line',”,”,'2008-10-03′,'0000-00-00′,'0000-00-00′,'456 Morningside Ave','ste. 512′,'Brooklyn','NY','10023′,'Joe','Customer 1′);
    insert into production values(”,'2008-10-18′,'25′,'25′,'25′,'NOTES 1′,”,”,'2008-10-04′,'0000-00-00′,'0000-00-00′,'555 somewhere','suite 123′,'new york','new y','10001′,'Joe','Name 1′);
    insert into production values(”,'2008-10-19′,'45′,'45′,'45′,”,”,”,'2008-10-05′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,'Tom',”);
    insert into production values(”,'2008-10-20′,'34′,'34′,'34′,'new notes',”,”,'2008-10-06′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,'Steve',”);
    insert into production values(”,'2008-10-21′,'12′,'12′,'12′,'even newer notes',”,”,'2008-10-07′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,'mark',”);
    insert into production values(”,'2008-10-22′,'1′,'0′,'0′,”,”,”,'2008-10-08′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-23′,'2′,'0′,'0′,”,”,”,'2008-10-09′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-24′,'3′,'0′,'0′,”,”,”,'2008-10-10′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-15′,'0′,'0′,'0′,'later',”,”,'2008-10-11′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-16′,'0′,'0′,'0′,'later still',”,”,'2008-10-12′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-17′,'0′,'0′,'0′,'later still',”,”,'2008-10-13′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”);
    insert into production values(”,'2008-10-18′,'0′,'0′,'0′,'later still',”,”,'2008-10-14′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”);
    insert into production values(”,'2008-10-19′,'0′,'0′,'0′,'latest',”,”,'0000-00-00′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”);
    insert into production values(”,'2008-10-01′,'34′,'34′,'34′,'very latest',”,”,'2008-10-02′,'2008-10-04′,'2008-10-04′,”,”,”,”,”,'bruce');
    insert into production values(”,”);

    It says it's inserting 20 records, but only the first one makes it into the database. Любые мысли?

  89. enim
    Oct 23rd, 2008 at 04:16

    it did not insert into the database table where i want it inserted..:(

  90. login
    Oct 20th, 2008 at 18:10

    Nice work chief ;-)

  91. Fidel Gonzo
    Oct 10th, 2008 at 05:12

    Привет всем,

    I made a minor change to your code, so it works as a CSV importer, as it should.

    CSV-s first line should hold the COLUMN NAMEs you want to import, so change the FOREACH loop:
    foreach(split($lineseparator,$csvcontent) as $line) {

    $ Линий + +;

    $line = trim($line,” \t”);

    $line = str_replace(“\r”,”",$line);

    /*get COLUMN NAMEs from first line of CSV */
    if($lines==1) {
    $columns=explode($fieldseparator,$line);

    $columnsql=implode(“,”,$columns);

    echo $columnsql;
    продолжать;
    }

    /************************************
    Эта линия побег особый характер. удалить его, если записи уже бежал в CSV файл
    ************************************/
    $line = str_replace(“'”,”\'”,$line);
    /*************************************/

    $ Linearray = взорваться ($ fieldseparator, $ линия);

    $linemysql = implode(“','”,$linearray);

    if($addauto)
    $query = “insert into $databasetable ($columnsql) values('$linemysql');”;
    еще
    $query = “insert into $databasetable ($columnsql) values('$linemysql');”;

    $queries .= $query . “\n”;

    @ Mysql_query ($ запроса);
    }

  92. Admin
    Oct 6th, 2008 at 00:27

    How large is the file you're trying to import?
    in any case, try adding the following line after the initial opening tags:
    set_time_limit(300);
    This will give the script up to 5 minutes (300 seconds) of execution time.
    Replacing 300 with 0 will allow it to take as much time as needed.

  93. Phillip
    Oct 1st, 2008 at 22:26

    Hi there, nice script thanks. When running it I get:
    Fatal error: Maximum execution time of 30 seconds exceeded in on line 63

    Is there anything I can do to get around this?

  94. Roelof
    Sep 30th, 2008 at 08:06

    Robbie, thanks for you addition, it's quite welcome. Unfortunately, it doesn't work straight away when I copy it. I think something is missing because the code is spread out over two posts.

    Could you check the code as displayed here? Что-то не хватает?

  95. ASCASC
    Sep 27th, 2008 at 05:04

    brad, if you had downloaded it earlier than last week, replace the '< ?'at the top with '< ?php' (remove space)

  96. Штифтик
    Sep 26th, 2008 at 14:43

    i get the first so much of it cut off and the rest just code in my browser. I know php is working because the rest of the site works.
    I did upgrade to php5 does that matter?

  97. Robbie
    Sep 24th, 2008 at 14:27

    )
    ; // skip because it falls within the bad array elements
    еще
    $newarray[$y] = str_replace('”',”,$linearray[$y]);
    $linearray = array_values($newarray); // reset the keys to the new array
    $x++;
    }
    }
    }

  98. Robbie
    Sep 24th, 2008 at 14:27

    Well, here's the fix to my previous comment:

    insert this in between:

    $ Linearray = взорваться ($ fieldseparator, $ линия);

    … insert code snippet below….

    $linemysql = implode(“','”,$linearray);

    Finds and keeps all “Stuff, More Stuff” together before imploding it.

    $a = “”;
    $b = “”;
    $qoutecount = 0;
    for ($x = 0; $x -1) {
    $qoutecount++;
    if ($qoutecount == 1)
    $a = $x; // store the first instance
    elseif ($qoutecount == 2) {
    $quotecount = 0;
    $b = $x; // store the second instance
    // THAT DOES IT… compile all elements from $a to $b into $a and ignore elements anything after $a to $b in new array;
    $newa = “”; // initialize new string.
    for ($z = $a; $z $a && $y

  99. Robbie
    Sep 24th, 2008 at 12:19

    Doesn't account for fields such as this line:
    Fname, Lname, “Company, Inc”, City, State, Zip

    Company and Inc get split into two different columns.

  100. Стив
    Sep 12th, 2008 at 12:19

    Rengaraj,
    the csv file should be in the same place as the PHP file.
    Also, you don't really have to use the same csv file name.
    bbqrest.csv is an example, replace this file name with your own.

  101. Rengaraj
    Sep 12th, 2008 at 12:16

    Can any one reply fast i have a csv file bbqrest.csv at correct path(root)..

  102. Rengaraj
    Sep 12th, 2008 at 12:11

    I am getting this error File not found. Make sure you specified the correct path.

  103. ollyd
    Sep 9th, 2008 at 06:35

    it would be a good idea to add prevent headers within the csv from being submitted into the database. Or to create a script that pulls out the first row and creates a db using these values as the column names.

  104. Joseph
    Sep 3rd, 2008 at 12:39

    Стив,

    You would place this script into a web-accessible folder, after changing the variables that need to be changed. Read the comments in the script to find out what you need to specify. Then, call the script up in a web browser, like:

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

  105. steve
    Aug 31st, 2008 at 19:04

    Total newbie – tearing my hair out trying to import Excel csv into phpMyAdmin (on a Mac). Would love to know exactly where and what I do with this php script…?

  106. dani
    Aug 25th, 2008 at 20:06

    Wow is cool … had idea after read your coding… thank a lot

  107. » CSV import
    Jun 7th, 2008 at 10:29
  108. Import a Comma Delimited File Into MySql with a PHP Script | eCommerce & SEO
    Nov 30th, 2007 at 11:59
  109. hfvd
    Oct 24th, 2007 at 12:44

    Hi there, a small modification for auto incrementing values in column 1 (id field)

    see variable $count.

    ola, enrico.

    //$con = @mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
    //@mysql_select_db($databasename) or die(mysql_error());

    $ Линий = 0;
    $ Запросов = "";
    $linearray = array();

    $count = 0;

    foreach(split($lineseparator,$csvcontent) as $line) {

    $count = $count + 1;

    $ Линий + +;

    $line = trim($line,”\t”);

    $line = str_replace(“'”,”\'”,$line);

    $ Linearray = взорваться ($ fieldseparator, $ линия);

    $linemysql = implode(“','”,$linearray);

    $query = “insert into `your db table` VALUES('$count','$linemysql');”;

    $queries .= $query . “\n”;

    @ Mysql_query ($ запроса);
    }

    //@mysql_close($con);

  110. » Converting csv to sql using php @The Coding Pad: Programming blog, discussions, tutorials, resources
    Sep 24th, 2007 at 14:12
  111. Len Lulow
    Feb 28th, 2007 at 20:11

    Thanks a lot this saved lots of time! Nice script.

  112. S. Martinez
    Feb 22nd, 2007 at 12:17

    I usually use phpmyadmin, but true, in case one does not have it installed, and does not have shell access (like most of the shared hosting providers), this can come in very handy.

  113. Jake
    Feb 25th, 2007 at 06:31

    Very useful, thank you.