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

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

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

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

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

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

Тэги:
  1. justkid
    7 апреля 2011 в 10:25

    Я действительно путают с настоящим Кодексом!
    но я не буду пытаться до!
    Кстати, как код HTML или поле, чтобы называть этот код

  2. Хорхе Диаса
    14 марта 2011 в 19:01

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

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

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

  3. Ржавый
    3 февраля 2011 в 14:56

    Любая идея о том, как получить этот скрипт для работы на полях, заключенные в двойные кавычки, чтобы поля с запятыми в них не читается как новый?

    У меня есть данные, что включает в себя запятые, как суммы в долларах и комментарии раздел, где пользователи могли использовать запятую. Мне нужно все поле импортировать и этот сценарий рассматривает их как новых месторождений.

  4. qwewe
    23 января 2011 в 14:56

    Марк @ Клойд
    "Адрес = VALUES (адрес)
    Я получаю ошибки здесь Синтаксическая ошибка: синтаксическая ошибка, неожиданный '='

  5. 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);

    <>

    Я действительно мог использовать некоторую помощь в получении этой работы ...
    Рон

  6. 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);

    Спасибо,

  7. Халед
    11 января 2011 в 10:35

    @ Халед
    Как я могу экспортировать UTF8 Excel для output.sql
    спасибо

  8. Халед
    11 января 2011 в 09:46

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

    как эти вещи
    Как я могу решить эту проблему. любой специальный формат для Excel листа?

  9. Кроличий садок
    30 декабря 2010 в 18:57

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

  10. Кроличий садок
    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 файл \ п.";

    ?>

  11. Кроличий садок
    28 декабря 2010 в 22:30

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

    keywords_categories

    ключевые слова

  12. Кроличий садок
    28 декабря 2010 в 22:10

    @ Уоррен

    Кроме того, просто из любопытства может это также процесс текстовый файл, (что только список слов в ней) так же?

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

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

  13. Кроличий садок
    28 декабря 2010 в 21:37

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

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

    Мне это нужно, чтобы Войти в БД на сервере (он должен спросить у меня URL сайта и названия БД пользователя и пароль, и т.д.).

    Мне нужно то, что позволяет мне просмотреть и выбрать имя каталога на жестком диске, или ввести его.

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

    На каждом файле мне это нужно, чтобы сначала принять имя файла (менее расширения) и загрузить его в БД в таблице категории. Эта таблица содержит номер ключа, который он затем назначен на это имя.

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

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

    Тогда следующий файл, пока он не работает из файлов в каталоге.

    Тогда я хотел бы, чтобы сказать мне "Процесс завершен.", И если какой-либо ошибки, чтобы сказать мне.

    Может ли любой из вас, ребята, помогите мне с этим?

  14. Альфа
    26 декабря 2010 в 18:32

    Спасибо за отправку Excel в MySQL скрипт, это очень полезно для меня.

  15. Pruthvi
    24 декабря 2010 в 16:09

    Я. код работает, но NW я получаю мои данные заключены в кавычки @ Суман

  16. Суман
    23 декабря 2010 в 14:18

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

  17. Суман
    23 декабря 2010 в 14:16

    @ Pruthvi

    Привет,

    Пожалуйста, используйте ниже приведенный код ... ...

  18. Суман
    23 декабря 2010 в 14:12

    Натереть кодекса Это действительно полезно для всех разработчиков PHP.

  19. Pruthvi
    23 декабря 2010 в 09:48

    Вы можете объяснить ваш код вы хотите заменить @ mysql_query ($ запроса); с заявлениями и дали, но она показывает ошибки $ сообщение не определен @ Андрей рыбы

  20. Pruthvi
    23 декабря 2010 09:31,

    та же проблема со мной @ Андрей рыбы

  21. Pruthvi
    23 декабря 2010 в 09:30

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

  22. Pruthvi
    23 декабря 2010 в 08:52

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

  23. Андрей рыбы
    10 декабря 2010 в 15:28

    Хорошо, нашел эту проблему. Я mispelt имя таблицы. Но можно найти только вопрос, когда я добавил следующий код, который будет возвращать ошибку, если SQL не выполняется. В настоящее время скрипт не сказать, если там были проблемы.
    Таким образом, перемены линии
    @ Mysql_query ($ запроса);

    на все следующие: -

    $ Результат = mysql_query ($ запроса);

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

    Надежда, что помогает кому-то. Он сделал мне.
    AJ

    @ Андрей рыбы

  24. Андрей рыбы
    9 декабря 2010 в 16:26

    Когда я запускаю этот скрипт, используя CSV, который я знаю импорта правильно, используя PHP Admin, скрипт работает, сообщает правильное количество строк с сообщением "Найдено общей сложности 193 записей в CSV-файл." Но ни одно из данных появится в таблице. Я внес изменения в CSV, чтобы я мог увидеть, если данные были введены в таблицу и это не так. Любые идеи?
    AJ

  25. Крейг
    8 декабря 2010 01:20,

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

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

    После этой линии:

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

    и новая линия заменяет двойные кавычки ни с чем. Это же, как и линии в своем распоряжении, кроме его удаления \ "вместо \ г (двойные кавычки, а не возврат каретки).

    @ Neady

  26. пуля
    1 декабря 2010 в 17:29

    Большой небольшой программы.

    Есть ли способ заменить данные в ячейке, например. "Города" в CSV и изменить его на значение из предыдущей странице, как $ _SESSION или $ _POST значение?

  27. Эван ислама
    30 ноября 2010 в 17:23

    Это большое ... очень легко осуществить. Теперь нужно выяснить, как использовать этот или аналогичный сценарий для загрузки. XLS файл вместе с. CSV файл

  28. Admin
    29 ноября 2010 в 16:57

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

  29. Майк
    18 ноября 2010 в 21:48

    @ Эксклюзивный Учебники
    Есть ли способ, чтобы он не тайм-аут? он прекрасно работает с 100k записей, но когда я иду на что-то большое, как млн. или более, работает около 20 секунд, то идет на пустой экран и объявлений нет записей.? Спасибо.

  30. neady
    25 октября 2010 в 18:21

    Имея точно такой же вопрос, кто может помочь, пожалуйста?

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

  31. 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

  32. 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 мне помочь, спасибо заранее

  33. Интернет Образования
    29 сентября 2010 в 10:26

    Я думаю, что это лучше для CSV Корзину's в SQL.

  34. susylu
    21 сентября 2010 в 14:54

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

  35. Bhanu
    19 сентября 2010 в 22:44

    @ Zeshan

    использование взорваться, а не раскол

  36. zeshan
    16 сентября 2010 в 10:05

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

    плз помогите мне срочно

  37. Интернет-аптеки
    11 сентября 2010 в 09:22

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

  38. Орам
    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

  39. Мэтт
    8 сентября 2010 в 23:18

    Это работает очень хорошо. Спасибо!

  40. Рой
    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-файл. добавил к БД \ п ".

  41. Рой
    20 августа 2010 в 12:00

    Привет,

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

  42. Radikale
    18 августа 2010 в 18:35

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

    Я просто есть вопрос.

    Можно ли использовать несколько символов, чтобы взорваться коммандос в сценарии?
    Я allso необходимо, что существует разделение с. и;

    Спасибо большое, если некоторые тела имеет никакого представления!

  43. Винита
    17 августа 2010 в 06:49

    Я использую этот код ... ... ... Его очень легко выполнить его в свой сайт ... ..
    Большое спасибо ..

    Я хочу еще немного кода для PHP ... ...
    Чтобы преобразовать страницу в PDF ...

  44. Haan
    7 августа 2010 в 5:11

    Привет,
    Начало этой ошибки. как решить это?

    Ошибка:
    Файл не доступен для записи, проверьте разрешения. Найдено всего 13 записей в этом формате CSV файл.

    Спасибо
    Haan

  45. Дарвин
    23 июля 2010 в 1:23

    Хм .. Я получил ошибки, как это "Файл не доступен для записи, разрешения проверить. Найдено всего 2 записей в CSV-файл. "Любая идея, что пошло не так?

  46. Дарвин
    23 июля 2010 01:21,

    Хм .. Я получил ошибки, как это "Файл не доступен для записи, разрешения проверить. Найдено всего 2 записей в CSV-файл. "Любая идея, что пошло не так?

  47. Поллукс
    24 июня 2010 в 10:28

    Чтобы пропустить первую строку или строки, которая является заголовком в CSV файл сделать это:
    ... ..
    если ($ линий> 1) {

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

    $ Запросов .= $ запроса. "\ П";
    @ Mysql_query ($ запроса);
    }

  48. Новичок
    14 июня 2010 в 21:41

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

  49. Гио
    5 июня 2010 в 14:55

    Если вы хотите избежать вставки первом ряду, просто играть со счетчиком, например:

    $ Линий = 1; (значение счетчика 1)
    $ Запросов = "";
    $ Linearray = Array ();

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

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

    если ($ линий> = 3) {(начало в № 3 "ничего больше или равна 3")

  50. Колтон
    5 июня 2010 в 09:55

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

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

  51. Саман
    3 июня 2010 в 1:10

    Если я ограниченный доступ к жесткому диску клиента как я буду загружать CSV файл server.for примере мы можем установить значение по умолчанию для загрузки файлов управления

  52. Алехандро
    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

  53. 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`);

  54. мира
    20 апреля 2010 в 11:22

    Скрипт читает дополнительную строку из CSV-файла. например, если CSV файлов имеет 25 записей Он показывает Есть 26 записей. Можете ли вы сказать мне, где я буду неправильно?

    Я добавил, чтобы проверить, если это первая линия и продолжить цикл, если его первой линии.

    спасибо

  55. Карл
    18 апреля 2010 в 11:00

    Как Гарри, я хочу, чтобы перезаписать существующие записи, но путем ее обновления, а не удаление всех данных в БД. Sp где-то здесь:

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

    Как я мог бы проверить, если запись существует, а затем обновить, а не вставить?

  56. мира
    13 апреля 2010 в 10:52

    Как я могу пропустить первую строку / строки которой заголовок файла CSV и вставить остальные данные в БД?

  57. Admin
    16 марта 2010 в 12:30

    @ Gary
    Вы можете использовать @ mysql_query ("обрезать $ databasetable"); сразу после @ mysql_select_db заявление.
    Но будьте осторожны, так как это уничтожит данные и не является обратимым.

  58. Admin
    16 марта 2010 в 12:28

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

  59. Жереми
    9 марта 2010 в 12:39

    Привет всем,

    Как содержать эти CSV котировки в дату "день, месяц даты, 2010" и государство "Пров, государство" в столбце в моей базе данных? Я вижу много примеров, но я не могу получить его на работу. любая помощь будет хорошо.

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

  60. data_type
    5 марта 2010 в 12:03
  61. Гари
    2 марта 2010 в 11:26

    Спасибо, этот код действительно помогло!

    Как я мог бы изменить его, чтобы формы, которое будет отображаться в которой пользователь просматривает и выбирает CSV файл для импорта в таблицу?

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

    Многие спасибо

  62. Киш
    17 февраля 2010 в 14:31

    Это очень полезный код для меня ..
    спасибо.

    Как я могу получить просмотреть файл, а не вводить полный путь к файлу ..

    Просьба помочь в этом.

    спасибо

  63. rajdeo
    4 февраля 2010 в 07:21

    я не понял как это работает от управления файлами. значит, что сначала просмотреть и выбрать файл, а затем представить, где мне необходимо изменение

  64. Марк лагерь
    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 \ п";
    }

  65. Марк Клойд
    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 сценарий.

    Наконец, вы должны помнить, чтобы множество индексов в базе данных, "О дублировать ..." на работу, автоматический шагом не будет работать в этом случае, так что вы должны установить вторичный индекс по таблицам Автоинкремент, таблиц, что дон 'т прирост авто и имеют уникальные поля работать с одним индексом, если это маршрут, который Вы хотели бы отправиться.

    Я надеюсь, что это кто-то помогает!

    Ура!

  66. 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 https://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 https://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 ниже.

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

    Шаг 2: данные фотографии таблицы следует загружать в формате CSV.

    Шаг 3: Использование Y флаги и мл Количество в данных, которые можно ссылку на наш местах изображения.

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

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

    Например, первичные фото листинг номер 1899430 находится по адресу

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

    Наши дополнительные изображения путь к каталогу имеет следующую структуру:

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

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

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

  67. Натан
    20 октября 2009 05:59,

    Привет, это говорит мне, количество записей, но не положить данные в базу данных

    Надеюсь, что вы можете помочь

    Натан

  68. Admin
    8 октября 2009 в 16:48

    Команда: обрезать TableName.

    Вы можете вставить следующее в строке 58:
    @ Mysql_query ("обрезать $ databasetable");

    но это не является обратимым! так что будьте осторожны

  69. МДЖС
    7 октября 2009 в 07:24

    Как я могу пустой мой уже заполнены таблицы перед вставкой нового файла?
    или я могу обновить уже существующий вход?

    TRUNCATE, обновление? Как я могу получить это в запросе?

  70. Admin
    5 октября 2009 в 08:46

    @ Энди Бразертон : Это означает, что запрос пытается вставить запись с числом столбцов, которые не соответствуют, что из таблицы базы данных.

    1) Вы уверены, что файл CSV имеет точно такую ​​же число столбцов, таблицы в базе данных?
    2) Является ли разделитель полей в этом файле CSV действительно запятую? или это вкладки, например, или другие? Если это не запятая, измените значение переменной $ fieldseparator по разделу 12
    3) В таблице должны быть уже создана в базе данных, прежде чем загружать данные в него. Вы уверены, что вы его?

  71. Энди Бразертон
    4 октября 2009 в 14:14

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

    Я бы очень хотел, чтобы использовать этот сценарий, но я не уверен, что я делаю неправильно. Я получаю ту же проблему, упомянутую выше с данными без загрузки в БД. Он находит правильное количество строк, но ничего не показывает, в дБ.

    Я изменил линии 88 @ mysql_query ($ запроса) или умереть (mysql_error ());

    и получаю сообщение "Количество столбцов не совпадает с количеством значений в строке 1"

  72. Admin
    3 октября 2009 в 18:02

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

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

    Вполне возможно, что запрос для вставки данных не удается.
    Попробуйте заменить линии 88 с:
    mysql_query ($ запроса) или умереть (mysql_error ());

    и проверить, какие ошибки вы получите.

  73. Admin
    3 октября 2009 в 17:58

    @ Окот
    Привет Окот.

    Скорее всего, вы можете избавиться от линии 33-54 и заменить их с этим одну строку:

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

    заменить точками с соответствующим URL (прямой URL для файла CSV)

  74. Admin
    3 октября 2009 в 17:54

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

  75. Окот
    18 сентября 2009 в 20:16

    Спасибо за сценарий. Очень понятно.

    Как я могу изменить этот сценарий так, чтобы она извлекает и сохраняет CSV файл из Интернета в MySQL?

  76. Адриан
    13 сентября 2009 в 19:03

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

    Пожалуйста, сообщите, спасибо за любую помощь.

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

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

    Привет всем!

    Кажется, скрипт работает ... кроме, что она не записать данные в MySQL ...
    Как с Крисом: сценарий завершается, и даже выходы количество записей, но не касается базы данных на всех ... но мне говорит: Найдено Всего 1 записей в этом формате CSV файл.

    Что я делаю неправильно (IM нуб на PHP и MySQL)

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

  78. Admin
    26 августа 2009 03:20,

    Привет Стэнли, проблема заключается в одинарные кавычки. Программное обеспечение блога здесь переписывает их. Просто замените 'и' с '

    PS: команды выше, является непосредственной загрузки CSV файла в базу данных из MySQL строки. Это хорошо, но не связанных с скрипта :)

  79. Стэнли Zdun
    24 августа 2009 в 18:19

    он говорит, чтобы загрузить это в базу данных

    загрузки данных "Путь" LOCAL INFILE в таблицу поля таблицы прекращено "," линии прекращено '\ п';

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

    Можно ли дать мне некоторые советуют, что делать

    спасибо
    Стэн

  80. Гэри Пирман
    23 февраля 2009 в 07:25

    Что касается вопроса кавычки, вы можете просто использовать следующим образом:

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

    Ура,
    ГАЗ.

  81. Admin
    18 декабря 2008 в 17:35

    Уважаемые Крис,

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

    и дайте мне знать, что ошибка это дает вам

  82. Крис
    18 декабря 2008 в 14:31

    Привет всем,

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

    Любые идеи?

    Спасибо
    C

  83. Admin
    1 декабря 2008 в 14:10

    Привет Марк,

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

  84. MarkFromHawaii
    19 ноября 2008 в 04:00

    Привет всем,

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

  85. ген
    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 записей, но только первый из них делает его в базу данных. Любые мысли?

  86. enim
    23 октября 2008 в 4:16

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

  87. Войти
    20 октября 2008 в 18:10

    Ницца главный труд ;-)

  88. Фидель Gonzo
    10 октября 2008 в 05: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 ($ запроса);
    }

  89. Admin
    6 октября 2008 в 00:27

    Насколько большой файл, который вы пытаетесь импортировать?
    В любом случае, попробуйте добавить следующую строку после начальной метки открытия:
    set_time_limit (300);
    Это даст сценария до 5 минут (300 секунд) времени выполнения.
    Замена 300 с 0 позволит ему взять столько времени, сколько необходимо.

  90. Филипп
    1 октября 2008 в 22:26

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

    Есть ли что я могу сделать, чтобы обойти эту проблему?

  91. Roelof
    30 сентября 2008: 08:06

    Робби, благодарю за вас Кроме того, это очень кстати. К сожалению, она не работает сразу, когда я его копирования. Я думаю, что-то не хватает, так как код распространяется в течение двух должностей.

    Не могли бы вы проверить код, как показано здесь? Что-то не хватает?

  92. ASCASC
    27 сентября 2008 в 5:04

    Бред, если бы вы скачали его раньше, чем на прошлой неделе, заменить "<?" в верхней с "<? PHP" (убрать пробел)

  93. Штифтик
    26 сентября 2008 в 14:43

    я сначала так много он отрезал и остальные просто код в браузере. Я знаю, PHP работает, потому что остальные сайт работает.
    Я сделал обновление до php5 это имеет значение?

  94. Робби
    24 сентября 2008 в 14:27

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

  95. Робби
    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

  96. Робби
    24 сентября 2008 в 12:19

    Не учитывает таких областях, как эту строку:
    Рпате, LName ", компании, Inc", город, штат, почтовый индекс

    Компании и получить Inc разделить на две колонны.

  97. Стив
    12 сентября 2008 в 12:19

    Rengaraj,
    CSV файл должен быть в том же месте, что и файл PHP.
    Кроме того, вы действительно не должны использовать то же имя файла CSV.
    bbqrest.csv является, например, заменить это имя файла с вашими собственными.

  98. Rengaraj
    12 сентября 2008 в 12:16

    Может ли один ответ быстро я bbqrest.csv CSV файл на правильный путь (корень) ..

  99. Rengaraj
    12 сентября 2008 в 12:11

    Я получаю эту ошибку Файл не найден. Убедитесь, что вы указали правильный путь.

  100. ollyd
    9 сентября 2008 в 6:35

    было бы неплохо добавить предотвращения заголовки в CSV от представленных в базе данных. Или создать скрипт, который вытаскивает первой строке и создает БД с помощью этих значений как имена столбцов.

  101. Иосиф
    3 сентября 2008 в 12:39

    Стив,

    Вы бы разместить этот скрипт в веб-папки доступны, после изменения переменных, которые должны быть изменены. Читать комментарии в скрипте, чтобы выяснить, что вам нужно указать. Тогда, вызов сценария в веб-браузер, например:

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

  102. Стив
    31 августа 2008 в 19:04

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

  103. Дани
    25 августа 2008 в 20:06

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

  104. »Импорт CSV
    7 июня 2008 в 10:29
  105. Импорт запятые файла на MySql с PHP скрипт | электронной коммерции и SEO
    30 ноября 2007 в 11:59
  106. 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);

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

    Большое спасибо это спасло много времени! Хороший сценарий.

  109. С. Мартинес
    22 февраля 2007 в 12:17

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

  110. Джейк
    25 февраля 2007 в 06:31

    Очень полезно, спасибо.