PHP-скрипт для импорта CSV данных в MySQL
Это простой скрипт, который позволит вам импортировать CSV-данных в базе данных. Это попадется под руку, потому что вы можете просто отредактировать соответствующие поля, загрузить его вместе с CSV-файл и назовите его из Интернета, и он будет делать все остальное.
Это позволяет указать разделитель в этом файле CSV, является ли это кому, вкладки и т.д. Она также позволяет вам выбрать линию сепаратора, позволяет сохранить вывод в файл (так называемый дамп данных SQL).
Это также позволяет вам включать пустое поле в начале каждой строки, которая, как правило, целыми автоматическое приращение первичного ключа.
Этот сценарий полезен главным образом, если у вас нет PhpMyAdmin, или вы не хотите хлопот входа в систему и предпочитают несколько кликов решение, или вы просто командную строку парень.
Просто убедитесь, что таблица уже создана, прежде чем пытаться сбросить данные.
Пожалуйста, ваши комментарии, если вы получили какой-либо отчет об ошибке.

Очень полезно, спасибо.
Я обычно использую PhpMyAdmin, но правда, в случае не должна быть установлена, и не имеет доступа к командной оболочке (как и большинство хостинг-провайдеров), это может оказаться очень кстати.
Большое спасибо это спасло много времени! Ницца сценарий.
[...] Что ж, сегодня я хочу представить вам еще один метод получения Вашего 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"; /*********** ************************************************** *******************************/ [...]
Привет там, небольшая модификация для автоматического приращения значения в столбце 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. [...]
[...] /******************************************** ************************************************/ / * Код на 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"; /*********** ************************************************** *******************************/ [...]
Wow прохладно ... возникла идея после чтения вашего кодирования ... Благодарю много
Всего новичка - рву на себе волосы, пытаясь импортировать в Excel CSV PhpMyAdmin (на Mac). Очень хотелось бы точно знать, где и что мне делать с этим сценарием PHP ...?
Стив,
Вы бы поместить этот скрипт в веб-папку доступной, после замены переменных, которые должны быть изменены. Читайте комментарии в сценарий, чтобы узнать, что вам нужно указать. Затем, вызов сценария в веб-браузер, например:
http://www.example.com/path-to-script/simplescvimport.php
было бы неплохо добавить предотвратить заголовки в CSV от представленных в базе данных. Или создать скрипт, который вытаскивает первой строки и создает БД с помощью этих значений, имена столбцов.
Я получаю эту ошибку Файл не найден. Убедитесь, что вы указали правильный путь.
Может ли один ответ быстро у меня есть bbqrest.csv CSV файл на правильный путь (корневой) ..
Rengaraj,
CSV-файл должен быть в том же месте, что и файл PHP.
Кроме того, вы действительно не должны использовать тот же файл CSV имя.
bbqrest.csv является, например, заменить это имя файла с вашим собственным.
Не учитывает таких областях, как эту строку:
Fname, Lname ", компания, Inc", город, штат, почтовый индекс
Компании и получить Inc разделить на две разные столбцы.
Ну, вот исправить на мой предыдущий комментарий:
вставить это между ними:
$ Linearray = взорваться ($ fieldseparator, $ строка);
... Вставить фрагмент кода ниже ....
$ Linemysql = взрываться ("','",$ linearray);
Находит и сохраняет все "Stuff, больше материала" взрывается вместе перед ней.
$ = "";
$ Ь = "";
$ Qoutecount = 0;
для ($ х = 0; $ х -1) {
$ Qoutecount + +;
если ($ qoutecount == 1)
$ = $ Х; / / сохраняем первой инстанции
ElseIf ($ qoutecount == 2) {
$ Quotecount = 0;
$ Ь = $ х; / / сохраняем второй инстанции
/ / ЧТО ЭТО ... собрать все элементы от $ до $ в $ б и игнорировать элементы что-нибудь после $ до $ б в новый массив;
Нева $ = ""; / / инициализируем новую строку.
для (г = $ $, $ Z $ & & $ у
)
/ / Пропустить, поскольку она входит в плохих элементов массива
еще
$ Newarray [$ у] = str_replace ('"',",$ linearray [$ у]);
$ Linearray = array_values ($ newarray) / / сброс ключей в новый массив
$ Х + +;
}
}
}
я получить первую в той части, отрезать, а остальные просто код в моем браузере. Я знаю, PHP работает, потому что остальные сайт работает.
Я сделал обновление до php5 это имеет значение?
Бред, если бы ты скачал его раньше, чем на прошлой неделе, заменить "<?" в верхней с "<? PHP" (убрать пробел)
Робби, спасибо, что вы того, это весьма приветствуется. К сожалению, это не сразу, когда я его копирования. Я думаю, что чего-то недостает, так как код распространяется в течение двух должностей.
Не могли бы вы проверить код, как показано здесь? Что-то не хватает?
Привет там, благодаря хорошим сценарием. При запуске этого я получаю:
Фатальная ошибка: Максимальное время выполнения 30 секунд превышен в строке 63
Есть все, что я могу сделать, чтобы обойти это?
Насколько велик файл, который вы пытаетесь импортировать?
В любом случае, попробуйте добавить следующую строку после первоначального открытия теги:
set_time_limit (300);
Это даст сценария до 5 минут (300 секунд) времени выполнения.
Замена 300 с 0 позволит ей занять столько времени, сколько необходимо.
Привет всем,
Я сделал небольшие изменения в коде, так что он работает как импортер 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 ($ запроса);
}
Ницца главный труд
это не вставить в таблицу базы данных, где я хочу это вставлено ..: (
Я могу получить только первую строку моего 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 записей, но только первый из них делает его в базу данных. Какие-нибудь мысли?
Привет всем,
Спасибо за сценарий. Я нуб на PHP и MySQL, так что я очень ценю то вроде этого. Я добрался до генерации "Файл не доступен для записи, проверьте права" сообщение об ошибке в браузере. Может кто-то пожалуйста, объясните комментарий о настройке разрешение 777? Я использую Excel-порожден. CSV-файла? Спасибо заранее.
Привет Марк,
во-первых, то имеются в виду выбранного файла в $ выходной_файл переменной.
во-вторых, этот файл должен быть доступен для записи. Я предполагаю, вы используете Linux, а не окна, как это обычно не проблема с окнами.
В Linux просто SSH к машине, перейдите в каталог, где выходной файл, и введите: CHMOD 777 файла
где "имя файла" является фактическое имя файла.
Если у вас нет SSH, FTP, многие клиенты поддерживают разрешение изменится. Для этой цели, FTP к папке, содержащей выходного файла, а затем выберите этот файл и найдите из этого FTP программное обеспечение возможность изменения разрешения. Установите его на 777, или "чтение, запись, исполнение для всех.
Привет всем,
Любите этот сценарий, и он работает нормально, теперь вдруг сценарий обыкновение вставлять записи. Сценарий завершается, и даже выходы количество записей, но не трогает базу данных на все ...
Любые идеи?
Спасибо
C
Дорогой Крис,
пожалуйста, замените:
@ Mysql_query ($ запроса);
с:
@ Mysql_query ($ запроса) или умереть (mysql_error ());
и дайте мне знать, какую ошибку он дает вам
Что касается вопроса кавычки, вы можете просто использовать это:
$ Linearray = preg_split ("/,(?=(?:[^ \ "] * \" [^ \ "] * \ ")*(?![^ \"] * \ $ "))/", линии );
Cheers,
Газ.
он говорит, чтобы загрузить это в базу данных
LOAD DATA LOCAL INFILE 'PATH' в поля таблицы TABLE прекращено "," линии заканчиваются '\ п';
я изменить путь и стол его вдаваясь но он дает мне ошибку, что его синтаксис неправильный код 1064
может кто-нибудь дать мне некоторые советуют, что делать
спасибо
стандартов
Привет Стэнли, проблема заключается в одинарные кавычки. Программное обеспечение блога здесь переписывает их. Просто замените 'и' с '
PS: команде выше, для непосредственной загрузки файла CSV в базу данных из MySQL строки. Это хорошо, но не связанные с скрипта
Привет всем!
По-видимому, скрипт работает ... Зависит, что он не записывает данные в MySQL ...
Как и Крис: сценарий завершается, и даже выходы количество записей, но не трогает базу данных на все ... но мне говорит: Найдено Всего 1 записей в этом файле CSV.
Что я делаю не так (им нуб на PHP и MySQL)
Спасибо
Клаус
Все привет
Я использую Drupal для создания нового веб-сайта, задача у меня возникли прямо сейчас, что мне нужно, чтобы импортировать данные из CSV-файла в базу данных MySQL, которая имеет общие столы, поэтому некоторые из полей, в которые мне нужны, чтобы импортировать данные CSV находятся в разных разделах одного и того же база данных будет этот скрипт работать на меня? Если не можете этот файл CSV быть импортированы с использованием другого метода?
Пожалуйста, посоветуйте, спасибо за любую помощь.
С уважением
Адриан
Спасибо за сценарий. Очень понятно.
Как я могу изменить этот сценарий так, чтобы она извлекает и сохраняет файл CSV из Интернета в MySQL?
@ Адриан
Привет Адриана.
Drupal, как Вы отметили, имеет сложные структуры таблицы. В зависимости от того, какая информация, которую вы импортируете, то очень вероятно, что эти данные должны быть разбиты на несколько таблиц, как правило, с общим внешним ключом, такие как идентификатор узла.
К сожалению, сценарий выше, не поможет это сделать.
@ Окот
Привет Окот.
Скорее всего, вы можете избавиться от линии 33-54 и заменить их на эту одну строку:
$ Csvcontent = @ file_get_contents ("http://...");
заменить точек с соответствующим URL-адрес (URL прямой в файл CSV)
@ Клауса
Привет Клауса.
Имеет ли CSV действительно содержат одну запись?
Поскольку сценарий достигли стадии, когда он выводит количество записей, я полагаю, он не преминул, когда он подключен к базе данных (строки 56-57) так что это не проблема.
Вполне возможно, что запрос для вставки данных не удается.
Попробуйте заменить линии 88 с:
mysql_query ($ запроса) или умереть (mysql_error ());
и проверить, что ошибка, которую вы получите.
Добрый день,
Мне бы очень хотелось, чтобы использовать этот сценарий, но я не уверен, что я делаю неправильно. Я получаю ту же проблему упомянутых выше с данными не загружается в базу данных. Он находит правильное количество строк, но ничего не показывает в дб.
Я изменил линии 88 @ mysql_query ($ запроса) или умереть (mysql_error ());
и получить это сообщение "Количество столбцов не совпадает с количеством значений в строке 1"
@ Энди Бразертона : Это означает, что запрос пытается вставить запись с числом столбцов, которые не совпадать с таблицей базы данных.
1) Вы уверены, что файл CSV имеет точно такую же число столбцов, таблицы в базе данных?
2) Является ли разделитель полей в этом файле CSV действительно запятую? или это вкладки, например, или другой? Если это не запятая, измените значение переменной $ fieldseparator в строке 12
3) таблицы должны быть уже создана в базе данных, прежде чем пытаться загрузить данные в него. Ты уверен, что у вас есть это?
Как же я пустой мой уже заполнены таблицы перед вставкой нового файла?
или может я обновление уже существующих ввода?
TRUNCATE, UPDATE? Как я могу получить это в запросе?
Команда: усечение имя_таблицы.
Вы можете вставить следующее в строке 58:
@ Mysql_query ("усечения $ databasetable");
но это не является обратимым! так что будьте осторожны
Привет, это говорит мне, что количество записей, но не положить данные в базу данных
Надеюсь, что вы можете помочь
Натан
Мне нужно загружать данные автоматически с удаленного сервера. Его файл 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
Отличный сценарий! Мне нужно немного начать прыгать от проекта я работал, и это сделали свое дело.
Я заметил нечто странное однако, я изменил скрипт для работы с формой и я заметил, что для поиска, последнее поле становилось 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 ...» для работы, авто шагом не будет работать в этом случае, так что вы должны установить вторичный индекс по таблицам автоматическое приращение, таблиц, что дон 'т прирост авто и обладают уникальными полями работать с одним индексом, если это маршрут, который Вы хотели бы пойти.
Я надеюсь, что это кто-то помогает!
Ваше здоровье!
Добрый день,
Сделаны некоторые изменения. . Мой текстовый файл имеет 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 \ п";
}
я ничего не понял как это работает от управляющего файла. это, прежде просматривать и выбирать файл, а затем представить, где мне нужно, чтобы изменения
Это очень полезный код для меня ..
спасибо.
Как я могу получить просматривать файл, а не вводить полный путь к файлу ..
Пожалуйста, помогите в этом.
спасибо
Спасибо, этот код действительно помогло!
Как бы я изменить его, чтобы позволить форме, которое будет отображаться в котором пользователь просматривает и выбирает файл CSV для импорта в таблицу?
А также как я могу сделать так, чтобы каждый раз новый файл представляется было бы изменить то, что в настоящее время хранятся в таблице?
Большое спасибо
[...] Что есть некоторые очень хорошие свойства, которые я мог бы использовать, чтобы помочь мне учить людей PL / SQL и XML. ITips и хитрости PHP скрипт для импорта данных в формате CSV mysqlPHP сценарий для импорта CSV данных в MySQL ... [...]
Привет всем,
Как содержать эти кавычки в CSV даты "день, месяц даты, 2010" и государство "пров, государство" в столбец в моей базе данных? Я вижу много примеров, но я не могу заставить его работать. любая помощь будет хорошо.
ак, 10037591,1 ", Вторник, 9 марта 2010 15:55:16", 59,7151, -151.4434,2.7,75.90,32 ", полуострова Кенай, штат Аляска"
THX
@ Киш
текущий код не позволяет просмотр для / загрузки файлов.
Вы можете просто поместить файл CSV в том же каталоге, что и сценарий PHP, а просто установить переменную $ csvfile равным имени файла (без пути)
@ Gary
Вы можете использовать @ mysql_query ("усечения $ databasetable"); сразу после заявления @ mysql_select_db.
Но будьте осторожны, так как это действие будет уничтожить данные и не является обратимым.
Как я могу пропустить первую строку / строки которых заголовок в файл CSV и вставьте остальные данные в БД?
Как Гэри, я хочу, чтобы перезаписать существующие записи, но, обновив ее, не удаляя все данные в БД. Sp где-то здесь:
если ($ addauto)
$ Запрос = "вставить в $ databasetable значения (",'$ linemysql');";
еще
$ Запрос = "вставить в $ databasetable значения ('$ linemysql');";
Как бы я проверить, если запись существует, а затем обновление, а не Вставьте?
Сценарий читает дополнительную строку из файла CSV. например, если CSV-файлов имеется 25 записей Он показывает, Есть 26 записей. Можете ли вы сказать мне, где я неправильно?
Я добавил проверить, если это первая линия и продолжить цикл, если его первой строке.
спасибо
Следующие сделал трюк для меня:
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`);
Это было очень полезно для меня ... но я должен был сделать модификацию для чтения больших файлов. Я был смущен сначала, но потом понял, скрипт загружает весь файл в память (не так ли?). Так вот настроенную версию кода, которая читает строки в одной за раз. он читает в файлах, которые выглядят как
начать файл:
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
Если я ограничен доступ жесткий диск клиента как я буду загружать файл CSV для server.for пример может положить значение по умолчанию для загрузки файлов контроль
Замечательный сценарий, но у меня возникли повторяющиеся проблемы.
После того как я запустить скрипт, он говорит: "Найдено Всего 1 записей в этом файле CSV.".
Я оглянулся назад в моем столе, и он показывает пустой.
Я проверил, чтобы убедиться, было правильное число столбцов и не было.
Пожалуйста, помогите!
Спасибо,
Коултон
Если вы хотите избежать вставки первом ряду, просто играть со счетчиком, например:
$ Прямых = 1; (значение счетчика 1)
$ Запросов = "";
$ Linearray = Array ();
Еогеасп (сплит ($ LineSeparator, $ csvcontent) при $ строка) {
$ Прямых + +; (Назначение первой линии № 2 (заголовок)
если ($ линии> = 3) {(начало в № 3 "что-нибудь выше или равным 3")
Я этот сценарий работает хорошо под другим доменом. Потом, когда я переехал его, хрон загрузки CSV файл, сохраняет его, а затем удаляет его, но оленья кожа загрузить его на MySQL. Когда я смотрю на import.php файл и попытаться выполнить его я получаю ошибку о том, не может найти файл убедитесь, что у вас есть правильный путь. Справка.
Чтобы пропустить первую строку / строки которых заголовок в файл CSV выполните следующие действия:
... ..
если ($ линии> 1) {
если ($ addauto)
$ Запрос = "вставить в $ databasetable значения (",'$ linemysql');";
еще
$ Запрос = "вставить в $ databasetable значения ('$ linemysql');";
$ Запросов .= $ запроса. "\ П";
@ Mysql_query ($ запроса);
}
Хм .. я получил ошибки, подобные этой "Файл недоступен для записи, проверьте права доступа. Найдено всего 2 записей в этом файле CSV. "Любая идея, что пошло не так?
Хм .. я получил ошибки, подобные этой "Файл недоступен для записи, проверьте права доступа. Найдено всего 2 записей в этом файле CSV. "Любая идея, что пошло не так?
Привет,
Получение этой ошибки. как решить эту проблему?
Ошибка:
Файл не доступен для записи, проверки прав доступа. Найдено всего 13 записей в этом файле CSV.
Спасибо
Haan
Я использую этот код ... ... ... Ее очень легко реализовать ее на моем сайте ... ..
Большое спасибо ..
Я хочу еще немного кода для PHP ... ...
Чтобы преобразовать страницы в PDF ...
Хорошая работа!
Я просто есть вопрос.
Можно ли использовать больше символов взорваться коммандос в сценарии?
Я allso необходимости, что есть разделение с. а;
Большое спасибо, если кто-то руководит имеет никакого представления!
Привет,
Я использую этот скрипт для импорта CSV Datafeed к MySQL.
Единственная проблема у меня есть, это то, что кавычки "", также вставляется в моей таблицы
Delimiter:, (komma)
Корпус: "(aanhalingsteken)
Новая линия: \ г \ п
Вот код, кстати,
$ 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. добавил к БД \ п ".
Это работает очень хорошо. Спасибо!
я столкнулся уведомления ниже
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
8pills.com ваша одна остановка здравоохранения решение. 8pills.com обеспечивают лучшее класс Универсальный и известных лекарств.
Не рекомендуются: функция Split () не рекомендуется использовать в E: \ WAMP \ WWW \ floodpk2 \ Admin \ simplecsvimport.php на линии 63
Файл не доступен для записи, проверки прав доступа. Найдено всего 1498 записей в этом файле CSV.
плз помогите мне срочно
@ Zeshan
использование взорваться, а не раскол
kaundo ле дой Descarga меня aparecen muchos молнии Тодос лос archivos лос Убико ан уна Сола carpeta? ¿
Я думаю, это лучше для CSV корзине в в SQL.
<? 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 мне помочь, заранее спасибо
Привет друзья,
Мне нужна срочная помощь от вас ... Так любезно помочь мне вот код ...
Подготовлено 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");
С наилучшими пожеланиями,
Рави Кумар
Имея точно такой же вопрос, может кто поможет пожалуйста?
@ Эксклюзивные учебники
Есть ли способ, чтобы он не тайм-аут? он прекрасно работает с 100 тыс. записей, но когда я пойти на что-то большое, как мил и более, работает около 20 секунд затем идет на пустой экран и объявлений нет записей.? Спасибо.
@ Микрофон
Вы можете попробовать добавить:
set_time_limit (0);
в самом начале? (Сразу после открывающего тега PHP)
Это здорово ... очень легко осуществить. Теперь должен выяснить, как использовать этот или аналогичный скрипт для загрузки. XLS файл вместе с. CSV-файл
Большая небольшая программа.
Есть ли способ замены данных в ячейке, например. «Города» в формате CSV и изменить его на значение из предыдущей странице, как $ _SESSION или $ _POST значения?
Моя CSV-файла импорта также имеет двойные кавычки вокруг каждого поля (в основном, чтобы избежать проблем, если мне нужно импортировать в Excel, чтобы он не калечить данных), поэтому у меня была эта проблема, где она была вставка записей с кавычки вокруг данных. Я разделся все двойные кавычки, добавив следующую строку:
$ Строка = str_replace ("\ "","",$ линия);
после этой строки:
$ Строка = str_replace ("\ г ","",$ линия);
и новая линия заменяет двойные кавычки ни с чем. Это же, как и линии перед ней, кроме его удаления \ "вместо \ г (двойные кавычки вместо возврата каретки).
@ Neady
Когда я запускаю этот скрипт, используя CSV, который я знаю импорта правильно используя PHP Admin, скрипт работает, сообщает правильное количество строк с сообщением «Найдено в общей сложности 193 записей в этом файле CSV." Но ни один из данных появится в таблице. Я сделал изменения в CSV, чтобы я мог увидеть, если данные были введены в таблице и это не так. Любые идеи?
AJ
Ладно, нашли проблему. Я mispelt имя таблицы. Но можно найти только вопрос, когда я добавил следующий код, который будет возвращать ошибку, если SQL не удается. В настоящее время сценарий не сказать, если там было проблемой.
Таким образом, перемены линии
@ Mysql_query ($ запроса);
на все следующее: -
$ Результат = mysql_query ($ запроса);
/ / Проверяем результат
/ / Это показывает фактический запрос направлен MySQL, и ошибки. Полезно для отладки.
если (! $ результат) {
$ Сообщение "Неверный запрос: '=. mysql_error (). "\ П";
"Всего запросов: '$ .= сообщение. $ Запроса;
умереть ($ сообщение)
Надежда, что помогает кому-то. Он сделал мне.
AJ
@ Андрей Рыбы
Код возвращает заявление, что он не мог найти файл CSV ...
ват может быть проблема ....
Новейшая разработка кода можно обнаружить не строк в CSV-файл, но его не отображает его в таблице
та же проблема со мной @ Эндрю рыбы
Вы можете объяснить ваш код, который требуется заменить @ mysql_query ($ запроса); с заявлениями со дала, но он показывает ошибки $ сообщение не определено @ Эндрю рыбы
Решетка кодекса Это действительно полезно для всех разработчиков PHP.
@ Pruthvi
Привет,
Пожалуйста, используйте ниже приведенный код ... ...
я код работает, но пи я получаю мои данные заключены в кавычки @ Суман
Спасибо, что поделились преуспеть в MySQL скрипт, это очень полезно для меня.
Я не программист. Я вижу ваш сценарий, и она может быть близка к тому, что мне нужно, или могли бы, может быть, основой того, что мне нужно, я не уверен.
Я должен выполнять те же функции загрузки снова и снова, но с другой подкаталог каждый раз с жесткого диска, для получения списка файлов CSV, а также для различных БД MySQL каждый раз (на differret сайт каждый раз). В большинстве случаев БД не будет иметь каких-либо данных в нем, но было бы идеально (но не обязательно), если сценарий все еще может работать с БД который имел данных, не затрагивая существующие данные).
Мне это нужно Войти в БД на сервере (он должен спросить у меня URL сайта и БД имен пользователей и паролей и т.д.).
Мне нужно нечто, что позволяет мне просматривать и выбрать имя каталога на моем жестком диске, или войти в нее.
Тогда это процесс каждого файла CSV в этом каталоге, один за другим, а именно:
На каждого файла мне нужно сначала взять имя файла (менее расширение) и загрузить его в БД в таблице категории. Эта таблица содержит номер ключа, который он затем назначается с таким именем.
Я тогда нужно скрипт для загрузки только слово Colum (1-й Colum данных) этого файла в таблице слов, и добавить соответствующие nubmer для имя категории из первого файла.
Следует отметить, что файл CSV часто содержит три строки текста заголовка и пустой строкой, все четыре из которых я хочу игнорируется и не загружен. Есть часто пустые строки в те eend файла, я также хочу, чтобы это игнорировать, тем, а также игнорировать любые другие столбцы, которые могут быть или не быть в файл CSV. В некоторых случаях файл CSV может не иметь заголовка или любой другой колонны.
Затем следующий файл, пока не кончатся файлы в каталоге.
Тогда я хотел бы, чтобы сказать мне "Процесс завершен.", И если какой-либо ошибки, чтобы сказать мне.
Может кто-нибудь из вас, ребята помогают мне с этим?
@ Уоррен
Кроме того, только из любопытства, это могло также обрабатывать текстовый файл (который только что список слов в нем) таким же образом?
(Я новичок в этом, и знаю, что можете задавать много, так что если кто-то может воспользоваться этой небольшой проект по мне, если это необходимо, может быть, мы могли бы обсудить мою платить небольшую сумму за свое время при принятии изменений в удовлетворения моих потребностей? Пожалуйста, дайте мне знать.)
Моя электронная почта: wr.spence @ hotmail.com
Просто небольшая коррекция на мою просьбу, две таблицы в базе данных MqSQL я уже говорил на самом деле называется:
keywords_categories
ключевые слова
@ Уоррен
/********************************/
Этот файл включает в себя многие пытались изменения, внесенные Уоррен (не программист) на 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 \ п.";
?>
Привет, ребята, просто хотел, чтобы вы все знаете, что я нашел кого-то писать мне самой программы мне нужно.
Я пытался сценарий, но output.sql является написание странные вещи,
вставить значения test_excel ('PK |!?????? Q k5 Q Q Q Q k5 k5 д ...???.
Подобные вещи
как я могу решить эту проблему. любой специальный формат для листа Excel?
@ Халед
Как я могу экспортировать UTF8 Excel для output.sql
спасибо
@ Рой
Я изменил сценарий, так что он потребляет гораздо меньше памяти при обработке больших файлов (он ударил 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);
Спасибо,
@ 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);
<>
Я действительно мог использовать некоторую помощь в получении этой работы ...
Рон
@ Mark Cloyd
"Адрес = VALUES (адрес)
Я получаю ошибку здесь, как Синтаксическая ошибка: синтаксическая ошибка, неожиданный '='
Любая идея, как получить этот скрипт работать на полях, которые заключены в двойные кавычки, так что поля с запятыми в них не читается как новая запись?
У меня есть данные, что включает в себя запятые, как суммы в долларах и комментарии раздел, где пользователи могли использовать запятую. Мне нужно все поле импортного и этот сценарий рассматривает их как новые месторождения.
Спасибо, очень хороший CSV-импортера.
Но я нашел одну маленькую проблему, он работает только с CSV-файл со структурой: "field1", "поле2", "поле3" и т.д., но я хава файл CSV так: поле1, поле2; filed3; и т.д.
Единственное, что могу изменять составляет $ fieldseparator но как я скажу "сценарий, что файл не используется" (разделитель полей)?
и еще один с $ FieldDelimiter ("или ничего)
Мой ИДЕЕЙ был выпадающий список с $ fieldseparator (или
Спасибо заранее.
Я очень путать с этого кода!
но я не буду пытаться до!
Кстати, как код или поля HTML назвать этот код
Привет ...
Я столкнулся с проблемой, когда я использую это, его показ ошибку о том,
"Не рекомендуются: функция Split () не рекомендуется использовать в C: \ WAMP \ WWW \ test1 \ simplecsvimport.php на линии 64
Файл не доступен для записи, проверки прав доступа. Найдено всего 41 записей в этом файле CSV. "
Pls ответ, в чем дело!
спасибо заранее!
Отличный сценарий! Тпх много
[...] Legend.ws, они сделали фрагмент кода, с помощью которых можно легко модифицировать и интегрировать в [...]
Привет, Этот сценарий является большим. У меня есть одна проблема все же. Есть в любом случае, чтобы удалить "отмечает, что сценарий вступает в свою базу данных. Они окружают каждую ячейку ввода.
Rearlly работал с PHP
Paglu просто расслабиться
Handy сценарий. Вполне вероятно, что вам нужно создание таблиц, а также (большой CSV со многими колоннами). Поэтому slidly модифицированную версию, которая может создать таблицу, используя заголовки первой строки в файл CSV.
Большое спасибо. из Южной Кореи.
Я хочу, чтобы мои CSV-файл, чтобы получить проверено с базой данных.
В базе данных есть строка, как что-
тестирование 23 ИНДИЯ
Моя CSV-файл, как что-
ABC 21 ИНДИЯ
Def 32 В
тестирование 23 ИНДИЯ
Def 21 ИНДИЯ
Когда я загрузить файл CSV он должен проверить, что название "тестирование" уже находится в базе данных и должен оставить эту строку и загрузить оставшиеся 3 ряда.
Можно ли сделать.
Пожалуйста, помогите.
Спасибо.
СПАСИБО U СОО НАМНОГО за предоставление этого кода ... СПАСИБО U ....
Большое спасибо, это очень и очень полезно!
Не рекомендуются: функция Split () не рекомендуется использовать в C: \ WAMP \ WWW \ simplecsvimport.php на линии 66
Пожалуйста, помогите ее решить.
Это просто информация, которую я искал! Я буду использовать этот сценарий для импорта CSV данных в MySQL.
Кодекс для импорта CSV-файла в MySQ Использование PHP: -
Во-первых сделать все Acess листов в выделиться и преуспеть лист сохранить в виде файла CSV
Спасибо!
Он работает как шарм!
Очень полезно для allaw пользователю для заполнения таблицы, не давая реальный доступ к нему.
Еще раз спасибо
Файл не доступен для записи, проверки прав доступа. Найдено всего 1 записей в этом файле CSV.
Пожалуйста, помогите мне решить эту проблему. я не создать этот файл output.sql
Я обязательно использовать эту. Я только задаюсь вопросом, как защитить или осуществлять так, чтобы посторонний человек не будет использовать его против меня. Я обсуждают использовать этот сценарий или Perl скрипт, который я могу запустить из командной строки. Спасибо.
Привет,
Я использую этот скрипт и отлично работает для меня. но это только вставки 237 записей в таблице MySQL, а в файл CSV Есть общая 437 записей.
Привет им новичок в 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
Спасибо
Привет, ребята,
Пожалуйста, помогите мне в этом сценарии. Он вставляет только 240 записей в базе данных.
Это не такой хороший сценарий ... как иметь дело с несколькими thousends или несколько записей?
Это не приятно базы данных для запуска thousends запросов, когда вы могли бы сделать намного лучше импорт за счет хранения, может быть, 1000 строк в 1 импорта ..
Я прочитал ваше сообщение полностью и получила сногсшибательное информации .... Пожалуйста, пришлите мне почту, если ваш собираемся что-то улучшить заранее ..
Благодаря ..
природных suppliments
Я просто хочу поблагодарить вас за ваш обмен информацией и Ваш сайт, это простая, но хорошая статья, которые я видел, мне это нравится, и я узнал кое-что уже сегодня! Спасибо!
maquinas де bordar
Hy
Сценарий нормально, работает прекрасно, но я нуждаюсь в совете
Моя таблица 3 colomns:
Идентификатор, код и название
Я allready есть некоторые данные вставляются, и я хочу, чтобы вставить только информация, что в mesing.
Мне нужно проверить только трески. Так что, если код существует, scipt shold не вставлены.
Заранее спасибо за советы.
С наилучшими пожеланиями,
Стефан
Спасибо за вашу информацию
Я уже закладками настоящей статьи, и, безусловно, отнести эту статью
для всех моих близких друзей и коллег. Спасибо за регистрацию!
спасибо. код, предоставленный действительно экономить свое время