[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Импортирование данных из txt в БД
guest
Здравствуйте.
Есть текстовый файл. В нем порядка 700 строк.
В каждой строчке по 3 значения, разделенных ";".
Нужно занести эти значения без обработки в базу данных. 1-е значение в поле field1 таблицы table, 2-е - в field2 и 3-е - в field3.
Насколько я понял, лучший способ это сделать - использовать LOAD DATA INFILE.

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




Спустя 13 минут, 46 секунд (25.02.2011 - 21:15) sergeiss написал(а):
Не будет проблем ни у какого пользователя, который в момент заливки этих данных что-то запросит smile.gif Потому что нормальные БД так сделаны, что у них не может быть проблем. Там специальная защита есть.
Так что смело грузи данные.

Спустя 1 час, 44 секунды (25.02.2011 - 22:16) guest написал(а):
Не работает:

mysql_query("LOAD DATA INFILE `data.txt` REPLACE INTO TABLE `imported`
FIELDS TERMINATED BY ';'
LINES TERMINATED BY `\r\n` "
);


data.txt лежит там же, где и сам файл с запросом.

Спустя 1 час, 16 минут, 2 секунды (25.02.2011 - 23:32) sergeiss написал(а):
Вообще-то, не помешает сразу же получать текст ошибки, чтобы никому не предлагать проявлять телепатические способности...
Но в данном случае могу сразу сказать, что кавычки у имени файла должны быть обычные одинарные. И в конце запроса тоже обычные кавычки.
Типа такого:
"LOAD DATA INFILE 'data.txt' REPLACE INTO TABLE `imported`
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n' "

Спустя 9 часов, 1 минута, 8 секунд (26.02.2011 - 08:33) guest написал(а):
Нет никаких ошибок вообще!
Пробовал путь к файлу указать неверный - все-равно не ругается.
Выставлено: error_reporting(E_ALL);

Спустя 10 минут, 50 секунд (26.02.2011 - 08:44) guest написал(а):
File 'data.txt' not found (Errcode: 2)

Спустя 8 минут, 15 секунд (26.02.2011 - 08:52) guest написал(а):
Как указать правильный путь?
Файл лежит в корневом каталоге: Z:\home\site\www
Так, чтобы файл не брался из каталога базы данных?

Спустя 26 минут, 2 секунды (26.02.2011 - 09:18) guest написал(а):
По поводу путей подсмотрел на Ирбисе.
Данные в таблицу заносятся не так как нужно. Русский язык вообще не обрабатывается. Как принудительно указать что и куда нужно заносить. Есть автозаполняемое поле id с ключом primary. Нужно, чтобы оно заполнялось автоматически.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.