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

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

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

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

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


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

136 комментариев

Джейк 25 февраля 2007 в 6:31

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

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

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

Лен Lulow 28 февраля 2007 в 8:11 вечера

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

[...] Что ж, сегодня я хочу представить вам еще один метод получения Вашего CSV файл в SQL, используя PHP кода. За этот кусок кода, полный кредит идет на легенду. Вы должны убедиться, что база данных уже создана, прежде чем сбросить дату. /************************************************* *******************************************/ / * Код на HTTP: / / legend.ws / блог / советы-трика / CSV-PHP-MySQL-импорт / / * Изменить записи ниже, чтобы отражать соответствующие значения /****************** ************************************************** ************************/ $ databasehost = "локальный"; $ DatabaseName = "тест", $ databasetable = "образец", $ databaseusername = " тест "; $ databasepassword =" "; $ fieldseparator =" "; $ LineSeparator =" п "; $ csvfile =" bbqrest.csv "; /***************** ************************************************** *************************/ / * Хотите добавить ampty поле в начале этих записей? / * Это полезно, если у вас есть таблица с первого поля auto_increment быть целое число / * и CSV-файл не имеет таких как пустые поля перед записями. / * Установка 1 для да, и 0 если нет. ВНИМАНИЕ: не установлен в 1, если вы не уверены. / * Это может сбросить данные в неправильных полях, если это дополнительное поле не существует в таблице /***************************** ************************************************** *************/ $ addauto = 0; /****************************** ************************************************** ************/ / * Вы хотите сохранить MySQL запросов в файл? Если да множество $ экономить до 1. / * Разрешение на файл должен быть установлен в 777. Либо загрузить образец файла через FTP и / * изменение разрешений, или выполнять в командной строке: сенсорный output.sql & & CHMOD 777 output.sql /******************* ************************************************** ***********************/ $ экономить = 1; $ выходной_файл = "output.sql"; /*********** ************************************************** *******************************/ [...]

hfvd 24 октября 2007 в 12:44

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

см. переменную $ в счет.

ола, Энрико.

/ / $ Кон = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) или умереть (mysql_error ());
/ / @ Mysql_select_db ($ DatabaseName) или умереть (mysql_error ());

$ Прямых = 0;
$ Запросов = "";
$ Linearray = Array ();

$ Count = 0;

Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {

$ Count = $ Count + 1;

$ Прямых + +;

$ = Линия отделки ($ строка, "\ т");

$ Строка = str_replace ("'"," \ '", $ строка);

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

$ Linemysql = взрываться ("','",$ linearray);

$ Запрос = "вставить` ваша база таблицы `VALUES ('$ подсчет', '$ linemysql');";

$ Запросов .= $ запроса. "\ П";

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

/ / @ Mysql_close ($ CON);

[...] На подобной ноте, вот готовый скрипт, который его автор говорит, будет импортировать файл CSV в MySql: PHP скрипт для импорта CSV данных в MySQL. [...]

»CSV импорта 7 июня 2008 в 10:29 утра

[...] /******************************************** ************************************************/ / * Код на http://legend.ws/blog/tips-tricks/csv-php-mysql-import/ / * Изменить записи ниже, чтобы отражать соответствующие значения /************* ************************************************** *****************************/ $ databasehost = "локальный"; $ DatabaseName = "ххххх", $ databasetable = "XXXX" ; $ databaseusername = "XXXX", $ databasepassword = "XXXX", $ fieldseparator = ""; $ LineSeparator = "п"; $ csvfile = "xport/2008_BF.csv"; /********* ************************************************** *********************************/ / * Хотите добавить ampty поле в начале этих записей ? / * Это полезно, если у вас есть таблица с первого поля auto_increment быть целое число / * и CSV-файл не имеет таких как пустые поля перед записями. / * Установка 1 для да, и 0 если нет. ВНИМАНИЕ: не установлен в 1, если вы не уверены. / * Это может сбросить данные в неправильных полях, если это дополнительное поле не существует в таблице /***************************** ************************************************** *************/ $ addauto = 0; /****************************** ************************************************** ************/ / * Вы хотите сохранить MySQL запросов в файл? Если да множество $ экономить до 1. / * Разрешение на файл должен быть установлен в 777. Либо загрузить образец файла через FTP и / * изменение разрешений, или выполнять в командной строке: сенсорный output.sql & & CHMOD 777 output.sql /******************* ************************************************** ***********************/ $ экономить = 1; $ выходной_файл = "output.sql"; /*********** ************************************************** *******************************/ [...]

Дани 25 августа 2008 в 8:06 вечера

Wow прохладно ... возникла идея после чтения вашего кодирования ... Благодарю много

Стив 31 августа 2008 в 7:04 вечера

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

Джозеф 3 сентября 2008 в 12:39 вечера

Стив,

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

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

ollyd 9 сентября 2008 в 6:35 утра

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

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

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

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

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

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

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

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

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

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

Робби 24 сентября 2008 в 2:27 вечера

Ну, вот исправить на мой предыдущий комментарий:

вставить это между ними:

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

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

$ Linemysql = взрываться ("','",$ linearray);

Находит и сохраняет все "Stuff, больше материала" взрывается вместе перед ней.

$ = "";
$ Ь = "";
$ Qoutecount = 0;
для ($ х = 0; $ х -1) {
$ Qoutecount + +;
если ($ qoutecount == 1)
$ = $ Х; / / сохраняем первой инстанции
ElseIf ($ qoutecount == 2) {
$ Quotecount = 0;
$ Ь = $ х; / / сохраняем второй инстанции
/ / ЧТО ЭТО ... собрать все элементы от $ до $ в $ б и игнорировать элементы что-нибудь после $ до $ б в новый массив;
Нева $ = ""; / / инициализируем новую строку.
для (г = $ $, $ Z $ & & $ у

Робби 24 сентября 2008 в 2:27 вечера

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

Брэд 26 сентября 2008 в 2:43 вечера

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

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

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

Roelof 30 сентября 2008 в 8:06 утра

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

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

Филипп 1 октября 2008 в 10:26 вечера

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

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

админ 6 октября 2008 в 12:27 утра

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

Фидель Gonzo 10 октября 2008 в 5:12

Привет всем,

Я сделал небольшие изменения в коде, так что он работает как импортер CSV, как следует.

CSV-х годов первая линия должна держать имена столбцов, которые необходимо импортировать, так что изменение цикл по каждому элементу:
Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {

$ Прямых + +;

$ = Линия отделки ($ строка, "\ т");

$ Строка = str_replace ("\ г ","",$ линия);

/ * Получить имена столбцов из первой строке CSV * /
если ($ прямых == 1) {
$ = Взорваться столбцов ($ fieldseparator, $ строка);

$ Columnsql = взрываться (",",$ колонны);

Эхо $ columnsql;
продолжаться;
}

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

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

$ Linemysql = взрываться ("','",$ linearray);

если ($ addauto)
$ Запрос = "вставить в $ databasetable ($ columnsql) значения ('$ linemysql');";
еще
$ Запрос = "вставить в $ databasetable ($ columnsql) значения ('$ linemysql');";

$ Запросов .= $ запроса. "\ П";

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

Войти 20 октября 2008 в 6:10 вечера

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

эним 23 октября 2008 в 4:16

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

Ген 29 октября 2008 в 9:28

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

вставить в производстве ценностей (", '2008-10-21 ', '50', '50 ', '50', 'это первая линия отмечает", "это отмечает строке 2", "это отмечает, линия 3 ', '0000-00-00', '0000-00-00 ', '0000-00-00', '456 Morningside проспект ',' Ste. 512 »,« Бруклин »,« Нью-Йорк ', '10023', «Джо», «Клиент 1 ');
вставить в производстве ценностей (", '2008-10-09 ', '50', '50 ', '50', 'это первая линия отмечает',",",' 2008-10-09', '2008 -10-14 ', '0000-00-00', '456 Morningside проспект »,« Сент-512 »,« Бруклин »,« Нью-Йорк ', '10023', 'Джо', 'Клиент 1').
вставить в производстве ценностей (", '2008-10-14 ', '25', '25 ', '25', 'ПРИМЕЧАНИЯ 1',",",' 2008-10-14', '2008-10-17 ',' NULL ', '555 где-то', 'пакет 123 »,« Нью-Йорк "," новый у', '10001 ',' Джо ',' Имя 1 ');
вставить в производство
вставить в производство
вставить в производстве ценностей (", '2008-10-17 ', '50', '50 ', '50', 'это первая линия отмечает',",",' 2008-10-03', '0000 -00-00 ', '0000-00-00', '456 Morningside проспект »,« Сент-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-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-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-01 ', '34', '34 ', '34', 'самую последнюю',",",' 2008-10-02', '2008-10-04 ', '2008-10-04',",",",",",' Брюс');
вставить в производство значения (",");

Он говорит, что это вставка 20 записей, но только первый из них делает его в базу данных. Какие-нибудь мысли?

MarkFromHawaii 19 ноября 2008 в 4:00 утра

Привет всем,

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

админ 1 декабря 2008 в 2:10 вечера

Привет Марк,

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

Крис 18 декабря 2008 в 2:31 вечера

Привет всем,

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

Любые идеи?

Спасибо
C

админ 18 декабря 2008 в 5:35 вечера

Дорогой Крис,

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

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

Гэри Pearman 23 февраля 2009 в 7:25

Что касается вопроса кавычки, вы можете просто использовать это:

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

Cheers,
Газ.

Стэнли Zdun 24 августа 2009 в 6:19 вечера

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

LOAD DATA LOCAL INFILE 'PATH' в поля таблицы TABLE прекращено "," линии заканчиваются '\ п';

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

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

спасибо
стандартов

админ 26 августа 2009 в 3:20 утра

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

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

Мороз 11 сентября 2009 в 12:59

Привет всем!

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

Что я делаю не так (им нуб на PHP и MySQL)

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

Адриана 13 сентября 2009 в 7:03 вечера

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

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

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

Окот 18 сентября 2009 в 8:16 вечера

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

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

админ 3 октября 2009 в 5:54 вечера

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

админ 3 октября 2009 в 5:58 вечера

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

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

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

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

админ 3 октября 2009 в 6:02 вечера

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

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

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

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

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

Добрый день,

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

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

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

админ 5 октября 2009 в 8:46

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

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

MAFF 7 октября 2009 в 7:24 утра

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

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

админ 8 октября 2009 в 4:48 вечера

Команда: усечение имя_таблицы.

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

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

Натан 20 октября 2009 в 5:59 утра

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

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

Натан

phpwebdesigner2010 8 декабря 2009 в 9:39 вечера

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

ЭТОТ РАЗДЕЛ НИЖЕ отлично работает!!
--------------------------

#! / BIN / Bash

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

ToUpper () {
Эхо $ 1 | TR "[: ниже:]" "[: верхнее:]"
}

# Если [-Z "$ 1"], затем
# Эхо использования: $ 0 таблицу
# Выход
# Fi

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

# Файла в ZIP имеет один меньше _
DATA = имя таблицы в моей базе данных MySQL
DATA = `ToUpper $ DATA`

# Гт $ TABLE.csv.zip
# Гт $ data.csv

кд / $ HOME / моя_папка / моя_папка /
####### Получить жилые

Wget -O $ ZIP.csv.zip
спать 10
####### Распакуйте его
PWD
LS-ла

распаковать-о $ ZIP.csv.zip
спать 10
####### Загрузить его

Wget-многословный $ $ deleteparam каталог $ userpwd http://mywebsite/myfolder/import.php?table = $ DATA
сна 300

###### Удалять файлы

гт $ ZIP.csv.zip
гт $ data.csv
спать 10
_ ---------------------------
ВСЕ ЭТО РАБОТАЕТ НАД WONDERFUL

Это то, что мне нужна помощь с
--------------------------
1. Мне нужен сценарий, чтобы добавить к выше файл, который будет загружать фотографии. Если вы видите ниже, я нуждаюсь в скрипт, который автоматически получает текущую дату и время, когда скрипт побежал. Там сервер держит рис за последние 7 дней и постоянно обновляется. После этого скрипт побежал она будет загружать данные в таблицу, которую я создал.

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

ИНСТРУКЦИЯ
Фотография данные загружаются по протоколу HTTP. Фотографии данные обновляются раз в сутки и доступен для скачивания в виде файла CSV. Затем вы можете написать скрипт, используя данные из файла CSV, чтобы указать на изображения на нашем сервере изображений. Необходимо указать значение для QUERY STRING last_updt> 'YYYYMMDD HH: MM: SS' для URL, чтобы вернуть данные. Поле last_updt является датой валютирования в последний раз, что фотография была изменена на листинг.

Вам нужно будет заменить user_code и держатели пароль место (XXXX) с Войти полномочия предоставлены для вас.

Шаг 1: Чтобы получить первичный листинг фото данных CSV-файла перейдите к URL ниже.

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

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

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

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

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

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

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

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

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

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

Марк Cloyd 3 января 2010 в 7:33 вечера

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

Я заметил нечто странное однако, я изменил скрипт для работы с формой и я заметил, что для поиска, последнее поле становилось buggered, потому что символ новой строки (либо \ г и \ п или оба) по-прежнему записывается в базе данных MySQL.

С этой целью, если вы замените:
$ Строка = str_replace ("\ г ","",$ линия);

с:
$ Строка = str_replace ('\ г',",$ линия);

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

$ Linemysql = взрываться ("','",$ linearray);

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

если ($ addauto) {

Переключатель ($ databasetable) {

случае ('адрес'):

$ Duplicatevals = "адрес = VALUES (адрес),
город = VALUES (города), состояние = VALUES (государства),

почтовый = VALUES (почтовый) ";

перерыва;

случае («собственник»):

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

addresskey = VALUES (addresskey) ";

перерыва;

}

$ Запрос = "вставить в $ databasetable значения (",'$ newlinemysql ')

ON DUPLICATE KEY UPDATE

$ Duplicatevals ";

} Еще {

$ Запрос = "вставить в $ databasetable значения ('$ linemysql')

ON DUPLICATE KEY UPDATE

$ Duplicatevals ";

}

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

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

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

Ваше здоровье!

Марк лагерь 11 января 2010 в 12: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;

Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {

$ Count = $ Count + 1;

$ Прямых + +;

$ = Линия отделки ($ строка, "\ т");

$ Строка = str_replace ("\ г ","",$ линия);

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

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

$ Linemysql = взрываться (""",$ linearray);

если ($ addauto)

$ Запрос = "вставить значения индикаторов ('$ подсчет', '$ linemysql');";

еще

$ Запрос = "вставить значения индикаторов ('$ linemysql');";

$ Запросов .= $ запроса. "\ П";

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

эхо "$ linemysql \ п";
}

rajdeo 4 февраля 2010 в 7:21 утра

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

Киш 17 февраля 2010 в 2:31 вечера

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

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

Пожалуйста, помогите в этом.

спасибо

Гэри 2 марта 2010 в 11:26

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

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

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

Большое спасибо

тип_данных 5 марта 2010 в 12:03 вечера

[...] Что есть некоторые очень хорошие свойства, которые я мог бы использовать, чтобы помочь мне учить людей PL / SQL и XML. ITips и хитрости PHP скрипт для импорта данных в формате CSV mysqlPHP сценарий для импорта CSV данных в MySQL ... [...]

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

Привет всем,

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

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

администратора 16 марта 2010 в 12:28 вечера

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

администратора 16 марта 2010 в 12:30

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

мира 13 апреля 2010 в 10:52 утра

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

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

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

если ($ addauto)
$ Запрос = "вставить в $ databasetable значения (",'$ linemysql');";
еще
$ Запрос = "вставить в $ databasetable значения ('$ linemysql');";

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

мира 20 апреля 2010 в 11:22 утра

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

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

спасибо

Ap.Muthu 28 апреля 2010 в 6:02 утра

Следующие сделал трюк для меня:
LOAD DATA LOCAL INFILE LOW_PRIORITY
'C: \ \ Documents и Settings \ \ Администратор \ \ Desktop \ \ SigmaS1.csv "
INTO TABLE `MyDB`. `` ТуЬаЫе
FIELDS ESCAPED BY '\ \'
TERMINATED BY ','
Возможно, заключенной BY '"'
ЛИНИИ TERMINATED BY '\ г \ п'
(`Пользователь`, `PWD`, `SNO`, `АМТ`, `ActiveRec`);

Алехандро 11 мая 2010 в 4:03

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

<? PHP

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

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

/ / Этот код читает татами файлы в базу данных

$ CON = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) или умереть (mysql_error ());
@ Mysql_select_db ($ DatabaseName) или умереть (mysql_error ());

/ / Этот цикл по связка файлов
для ($ г = 2, $ г <14; $ R + +) {
для ($ с = $ г, $ C

саман 3 июня 2010 в 1:10 утра

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

Коултон 5 июня 2010 в 9:55

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

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

Gio 5 июня 2010 в 2:55 вечера

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

$ Прямых = 1; (значение счетчика 1)
$ Запросов = "";
$ Linearray = Array ();

Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {

$ Прямых + +; (Назначение первой линии № 2 (заголовок)

если ($ линии> = 3) {(начало в № 3 "что-нибудь выше или равным 3")

Новичок 14 июня 2010 в 9:41 вечера

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

Поллукс 24 июня 2010 в 10:28 утра

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

если ($ addauto)
$ Запрос = "вставить в $ databasetable значения (",'$ linemysql');";
еще
$ Запрос = "вставить в $ databasetable значения ('$ linemysql');";

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

Дарвина 23 июля 2010 в 1:21 утра

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

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

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

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

Привет,
Получение этой ошибки. как решить эту проблему?

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

Спасибо
Haan

Винита 17 августа 2010 в 6:49 утра

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

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

Radikale 18 августа 2010 в 6:35 вечера

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

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

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

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

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

Привет,

Я использую этот скрипт для импорта CSV Datafeed к MySQL.
Единственная проблема у меня есть, это то, что кавычки "", также вставляется в моей таблицы
Delimiter:, (komma)
Корпус: "(aanhalingsteken)
Новая линия: \ г \ п

Рой 20 августа 2010 в 12:02

Вот код, кстати,

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

fclose ($ файл);

$ CON = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) или умереть (mysql_error ());
@ Mysql_select_db ($ DatabaseName) или умереть (mysql_error ());

$ Прямых = 0;
$ Запросов = "";
$ Linearray = Array ();
Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {

$ Прямых + +;

$ = Линия отделки ($ строка, "\ т");

$ Строка = str_replace ("\ г ","",$ линия);

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

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

$ Linemysql = взрываться ("','",$ linearray);

если ($ addauto)
$ Запрос = "вставить в $ databasetable значения (",'$ linemysql');";
еще
$ Запрос = "вставить в $ databasetable значения ('$ linemysql');";

$ Запросов .= $ запроса. "\ П";

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

@ Mysql_close ($ CON);

если ($ экономить) {

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

еще {
$ File2 = Еореп ($ выходной_файл, "ш");

если (! $ file2) {
эхо "Ошибка записи в выходной файл \ п.";
}
еще {
FWRITE ($ file2, $ запросов);
fclose ($ file2);
}
}

}

эхо "Найдено в общей сложности $ прямых записи в этот файл CSV. добавил к БД \ п ".

Мэтт 8 сентября 2010 в 11:18 вечера

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

Oram 10 сентября 2010 в 1:17

я столкнулся уведомления ниже

Notice: Undefined смещение: 1 в C: \ WAMP \ WWW \ Новая папка (2) \ exl8.php в строке 20

Notice: Undefined смещение: 2 в C: \ WAMP \ WWW \ Новая папка (2) \ exl8.php в строке 20

Notice: Undefined смещение: 2 в C: \ WAMP \ WWW \ Новая папка (2) \ exl8.php в строке 20

Интернет аптека 11 сентября 2010 в 9:22

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

zeshan 16 сентября 2010 в 10:05 утра

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

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

Бхану 19 сентября 2010 в 10:44 вечера

@ Zeshan

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

susylu 21 сентября 2010 в 2:54 вечера

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

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

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

Rashmi 10 октября 2010 в 8:41 утра

<? PHP
$ Newbal = '0 ';
включают "conn.php";
если (ISSET ($ _POST ['Отправить']))
{
$ Имя файла = $ _POST ['имя файла'];
$ Ручки = Еореп ("$ имя файла", "г");
в то время как (($ данных = fgetcsv ($ ручка, 1000, ","))! == false)
{

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

эхо "$ данных [0] выход";
}
}
fclose ($ ручкой);
печать "Импорт сделано";

}

еще
{
?>

Тип файла для импорта:

Дата
SetIcon ("изображения / 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 мне помочь, заранее спасибо

Seelam Рави Кумар 19 октября 2010 в 5:26 вечера

Привет друзья,

Мне нужна срочная помощь от вас ... Так любезно помочь мне вот код ...

Подготовлено HTML файл. Но я нуждаюсь в PHP решение ... Просьба помочь мне ... ... ..

Отправить SMS

Приемник Номер мобильного:
+91

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

Загрузить Excel файла:

<!-->
<Тип ввода = "файл" имя = "Файл" класс = "file_input_hidden" OnChange = "JavaScript: document.getElementBy

Sender ID:
:

Йога
Графах
MOBITEL

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

С наилучшими пожеланиями,
Рави Кумар

neady 25 октября 2010 в 6:21 вечера

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

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

микрофон 18 ноября 2010 в 9:48 вечера

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

админ 29 ноября 2010 в 4:57 вечера

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

Эван Ислам 30 ноября 2010 в 5:23 вечера

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

слизняк 1 декабря 2010 в 5:29 вечера

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

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

Крейг 8 декабря 2010 в 1:20 утра

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

$ Строка = str_replace ("\ "","",$ линия);

после этой строки:

$ Строка = str_replace ("\ г ","",$ линия);

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

@ Neady

Андрей Рыба 9 декабря 2010 в 4:26 вечера

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

Эндрю Рыбы 10 декабря 2010 в 3:28 вечера

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

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

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

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

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

@ Андрей Рыбы

pruthvi 23 декабря 2010 в 8:52 утра

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

pruthvi 23 декабря 2010 в 9:30 утра

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

pruthvi 23 декабря 2010 в 9:31

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

pruthvi 23 декабря 2010 в 9:48

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

Суман 23 декабря 2010 в 2:12 вечера

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

Суман 23 декабря 2010 в 2:16 вечера

@ Pruthvi

Привет,

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

Суман 23 декабря 2010 в 2:18 вечера

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

pruthvi 24 декабря 2010 в 4:09 вечера

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

Альфа 26 декабря 2010 в 6:32 вечера

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

Уоррен 28 декабря 2010 в 9:37 вечера

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

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

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

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

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

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

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

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

Затем следующий файл, пока не кончатся файлы в каталоге.

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

Может кто-нибудь из вас, ребята помогают мне с этим?

Уоррен 28 декабря 2010 в 10:10 вечера

@ Уоррен

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

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

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

Уоррен 28 декабря 2010 в 10:30 вечера

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

keywords_categories

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

Уоррен 29 декабря 2010 в 1:31 утра

@ Уоррен

/********************************/
Этот файл включает в себя многие пытались изменения, внесенные Уоррен (не программист) на 28 декабря 2010 года с учетом замечаний на сайте источника и другая информация, чтобы сделать эту программу в один он нуждается. Это очень неполны. Помощь наиболее ценится и очень нужны.

Линии добавлены для создания полей ввода на веб-сайт URL имя базы данных и пароль и т.д.
/********************************/

Добро пожаловать на сервер Загрузить утилиту

Эта программа работает с ПК для заполнения двух пустых таблиц в новую базу данных MySQL на вашем сайте по: загрузки каждого файла меньше расширением, с уникальным номером в передней, как счетчик, к столу keywords_categories, а затем присваивает номер 1 в пустой столбец перед первой Colum данных из этого файла, а также увеличивает число на единицу для каждого последующего файл обрабатывается из этого каталога, так что число assigend на название категории в таблице соответствует ключевым словам принадлежащие ему, которые затем загружены в таблицу ключевое слово.

Это делается для всех файлов CSV в указанный каталог в.

Он игнорирует первые пять строк в CSV-файл.

Ссылка на сайт:
Имя базы данных:
Имя пользователя базы данных:
База данных Пароль:
Путь Каталог, содержащий файлы для загрузки:

/********************************/
Вопрос
Как я могу получить выше данные из полей ввода в программу, чтобы соответствовать, что указанные ниже?
/********************************/

<? PHP
/********************************/
Линия добавляют для предотвращения тайм-аут на больших файлах.
/********************************/

set_time_limit (0);

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

/********************************/
Удаление расширений имен файлов
скопированы с WWW perlmonks орг /? node_id = 151232
/********************************/

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

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

Отображение {толчок (@ штук, $ _)} раскол (/ \ /, $ файл.);

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

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

/********************************/
/ * Оригинальный код http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
/ * Изменить записи ниже, чтобы отражать соответствующие значения
/********************************/
$ Databasehost = "локальный";
$ DatabaseName = "тест";
$ Databasetable = "образец";
$ Databaseusername = "тест";
$ Databasepassword = "";
$ Fieldseparator = "";
$ LineSeparator = "\ п";
$ Csvfile = "filename.csv";
/********************************/
/ * Вы хотели бы добавить ampty поле в начале этих записей?
/ * Примечание Уоррен в случае ключевые слова, которые первый столбец данных в каждом файле, в файл, файл основе этой новой пустой coum место дин 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)) {
эхо "Файл не найден. Убедитесь, что вы указали правильный путь \ п ".
выхода;
}

$ = Файл Еореп ($ csvfile, "г");

если (! $ файл) {
эхо "Ошибка при открытии файла данных \ п.";
выхода;
}

$ = Размер файла ($ csvfile);

если (! $ размера) {
эхо "Файл пуст \ п.";
выхода;
}

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

fclose ($ файл);

$ CON = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) или умереть (mysql_error ());
@ Mysql_select_db ($ DatabaseName) или умереть (mysql_error ());

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

$ Прямых = 1; (значение счетчика 1)
$ Запросов = "";
$ Linearray = Array ();

Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {

$ Прямых + +; (Назначение первой линии № 2 (заголовок)

если ($ линии> = 5) {(начало в № 5 "что-нибудь выше или равна 5?)

$ Запросов = "";
$ Linearray = Array ();

Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {

$ Прямых + +;

$ = Линия отделки ($ строка, "\ т");

$ Строка = 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 = Еореп ($ выходной_файл, "ш");

если (! $ file2) {
эхо "Ошибка записи в выходной файл \ п.";
}
еще {
FWRITE ($ file2, $ запросов);
fclose ($ file2);
}
}

}

эхо "Найдено в общей сложности $ прямых записей в этом файле CSV \ п.";

?>

Уоррен 30 декабря 2010 в 6:57 вечера

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

Халед 11 января 2011 в 9:46

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

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

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

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

joofoo 11 января 2011 в 11:16

@ Рой
Я изменил сценарий, так что он потребляет гораздо меньше памяти при обработке больших файлов (он ударил PHP памяти предела, когда я попытался использовать его на 100mb файл 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 = fgets ($ файла, $ ChunkSize);

$ Прямых + +;
если ($ линии <2) продолжать;

$ = Линия отделки ($ csvline, "\ т");

$ Строка = str_replace ("\ г ","",$ линия);

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

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

$ Linemysql = взрываться ("','",$ linearray);

$ Запрос = "вставить в $ databasetable значения ('$ linemysql');";

если ($ экономить) $ запросов .= $ запроса. "\ П";

@ Mysql_query ($ запроса);
Эхо $ линий "\ п".
}
fclose ($ файл);

$ Прямых -= 3;

@ Mysql_close ($ CON);

Спасибо,

ronbowalker 15 января 2011 в 5:54 вечера

@ Joofoo
У меня загрузили ваш код, но я не получаю обновленный информация о базе данных MySQL ...

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

А вот код ...:
<? PHP

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

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

если (! file_exists ($ csvfile)) {
эхо "Сервер получил ваш запрос, но файл CSV вы хотите загрузить в базу данных нет ... .. \ п";
выхода;
}

$ ChunkSize = 1 * (1024 * 1024);
$ = Файл Еореп ($ csvfile, "РБ");
если (! $ файл) {
эхо "Ошибка при открытии файла данных \ п.";
выхода;
}

$ = Размер файла ($ csvfile);

если (! $ размера) {
эхо "Файл пуст \ п.";
выхода;
}

$ CON = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) или умереть (mysql_error ());
@ Mysql_select_db ($ DatabaseName) или умереть (mysql_error ());

$ Прямых = 0;
$ Запросов = "";
в то время как (! feof ($ файл)) {
$ Csvline = fgets ($ файла, $ ChunkSize);

$ Прямых + +;
если ($ линии <2) продолжать;

$ = Линия отделки ($ csvline, "\ т");

$ Строка = str_replace ("\ г ","",$ линия);

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

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

$ Linemysql = взрываться ("','",$ linearray);

$ Запрос = "вставить в $ databasetable значения ('$ linemysql');";

если ($ экономить) $ запросов .= $ запроса. "\ П";

@ Mysql_query ($ запроса);
Эхо $ линий "\ п".
}
fclose ($ файл);

$ Прямых -= 3;

@ Mysql_close ($ CON);

<>

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

qwewe 23 января 2011 в 2:56 вечера

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

Расти 3 февраля 2011 в 2:56 вечера

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

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

Хорхе Диас 14 марта 2011 в 7:01 вечера

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

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

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

justkid 7 апреля 2011 в 10:25

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

Umair 2 мая 2011 в 7:39

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

Pls ответ, в чем дело!
спасибо заранее!

Joln 11 мая 2011 в 7:52

Отличный сценарий! Тпх много

[...] Legend.ws, они сделали фрагмент кода, с помощью которых можно легко модифицировать и интегрировать в [...]

Мэтт Флеминг 15 июня 2011 в 3:16 вечера

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

Jhon 3 июля 2011 в 10:14

Rearlly работал с PHP
Paglu просто расслабиться

Брэм 21 августа 2011 в 7:05 вечера

Handy сценарий. Вполне вероятно, что вам нужно создание таблиц, а также (большой CSV со многими колоннами). Поэтому slidly модифицированную версию, которая может создать таблицу, используя заголовки первой строки в файл CSV.

J-Hong 31 августа 2011 в 1:58 вечера

Большое спасибо. из Южной Кореи.

Амит 5 сентября 2011 в 10:11

Я хочу, чтобы мои CSV-файл, чтобы получить проверено с базой данных.

В базе данных есть строка, как что-
тестирование 23 ИНДИЯ

Моя CSV-файл, как что-
ABC 21 ИНДИЯ
Def 32 В
тестирование 23 ИНДИЯ
Def 21 ИНДИЯ

Когда я загрузить файл CSV он должен проверить, что название "тестирование" уже находится в базе данных и должен оставить эту строку и загрузить оставшиеся 3 ряда.

Можно ли сделать.

Пожалуйста, помогите.

Спасибо.

Соня Jayaprakash 15 сентября 2011 в 10:23

СПАСИБО U СОО НАМНОГО за предоставление этого кода ... СПАСИБО U ....

Ника 15 сентября 2011 в 8:22 вечера

Большое спасибо, это очень и очень полезно!

Арджун р Ядав 17 сентября 2011 в 8:19

Не рекомендуются: функция Split () не рекомендуется использовать в C: \ WAMP \ WWW \ simplecsvimport.php на линии 66

Пожалуйста, помогите ее решить.

Это просто информация, которую я искал! Я буду использовать этот сценарий для импорта CSV данных в MySQL.

Manmohit Верма 15 октября 2011 в 6:27 утра

Кодекс для импорта CSV-файла в MySQ Использование PHP: -
Во-первых сделать все Acess листов в выделиться и преуспеть лист сохранить в виде файла CSV

Фернандо Murrieta 15 октября 2011 в 6:07 вечера

Спасибо!

Он работает как шарм!

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

Еще раз спасибо :)

раджа 2 ноября 2011 в 12:12

Файл не доступен для записи, проверки прав доступа. Найдено всего 1 записей в этом файле CSV.
Пожалуйста, помогите мне решить эту проблему. я не создать этот файл output.sql

NetWeaver 7,3 3 ноября 2011 в 6:04 утра

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

Ankur 16 ноября 2011 в 11.15

Привет,

Я использую этот скрипт и отлично работает для меня. но это только вставки 237 записей в таблице MySQL, а в файл CSV Есть общая 437 записей.

Мигель 24 ноября 2011 в 3:57 утра

Привет им новичок в PHP. и нуждаются в помощи. Мне нужно, чтобы загрузить один файл CSV и кормить 2 MySQL таблиц. но данные в CSV-файл не имею ту же структуру, как в таблице MySQL. Также есть проблемы с форматом даты и запятые внутри данных.

MySQL table1
номер, имя, адрес электронной почты, статус
MySQL таблица 2
ид, book_name, date_book_out, date_book_in

CSV-файл
10052, "MikeParker", "mike@email.net", "активные"
10052, "Перед сезон заканчивается, rt526", 2011/01/10, 2011/01/25

Спасибо

Ankur 7 декабря 2011 в 4:35 вечера

Привет, ребята,

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

Рольф 8 декабря 2011 в 5:05 вечера

Это не такой хороший сценарий ... как иметь дело с несколькими thousends или несколько записей?
Это не приятно базы данных для запуска thousends запросов, когда вы могли бы сделать намного лучше импорт за счет хранения, может быть, 1000 строк в 1 импорта ..

природных suppliments 29 декабря 2011 в 8:19

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

природных suppliments

maquinas де Козер 30 декабря 2011 в 6:28 утра

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

maquinas де bordar

Стефан 30 декабря 2011 в 8:18

Hy
Сценарий нормально, работает прекрасно, но я нуждаюсь в совете
Моя таблица 3 colomns:
Идентификатор, код и название
Я allready есть некоторые данные вставляются, и я хочу, чтобы вставить только информация, что в mesing.
Мне нужно проверить только трески. Так что, если код существует, scipt shold не вставлены.

Заранее спасибо за советы.

С наилучшими пожеланиями,
Стефан

Ален 1 января 2012 в 6:04 вечера

Спасибо за вашу информацию

Шаумбург Personal Trainer 9 января 2012 в 1:35 вечера

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

прохожий 20 января 2012 в 3:37 утра

спасибо. код, предоставленный действительно экономить свое время :)

Оставить комментарий

Ваш комментарий