[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: импорт данных из файла в базу mysql
moskitos80
Всем привет столкнулся с такой проблемой, есть некий скрипт, он использует несколько таблиц из БД. При установке скрипта надо эти таблицы с некими начальными данными завести в БД. Я узнал что есть такой оператор:

LOAD DATA INFILE "/tmp/file_name" INTO TABLE test


Но он как я понял вставляет данные в определённую таблицу, причём в одну. Вопрос: как можно создать сразу несколько таблиц в БД, с данными взятыми из файла?



Спустя 1 минута, 43 секунды (5.10.2010 - 15:03) arvitaly написал(а):
А чем обычный дамп плох?

Спустя 7 минут, 49 секунд (5.10.2010 - 15:11) Michael написал(а):
А ты отдельно создай сначала таблицы, а потом подгрузи в них данные.
Создать так:
$t = "
CREATE TABLE IF NOT EXISTS `forms` (
`idf` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`idf`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ;
"
;
mysql_query($t);

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

Спустя 23 минуты, 16 секунд (5.10.2010 - 15:35) moskitos80 написал(а):
arvitaly - у меня задача: Самоустанавливающийся скрипт, но начальные данные он должен брать из одного файла дампа: dump.sql. Я слышал, народ это как то решает через exec ...

Спустя 12 минут, 40 секунд (5.10.2010 - 15:47) arvitaly написал(а):
Ну если сервак - *nix и разрешены консольные операции, то вообще все будет быстро, синтаксис импорта вроде такой (могу ошибаться не помню)

exec("mysql -ppassword -ulogin -hlocalhost dbname < dump.sql");

Спустя 4 минуты, 40 секунд (5.10.2010 - 15:52) Michael написал(а):
moskitos80, если именно через дамп, как в phpmyadmin, то его можно просто загрузить в php и выполнить весь код, только не через mysql, а через mysqli (там есть функция - mysqli_multi_query).

Спустя 19 часов, 17 минут, 20 секунд (6.10.2010 - 11:09) moskitos80 написал(а):
arvitaly, Michael Спасибо. - Оба варианта обязательно на заметку. Но проблему решил тривиально: получил содержимое файла в строку, разбил по символу ";" - в массив. Получившийся массив запросов выполнил циклом... да простит меня моя совесть smile.gif

Спустя 2 часа, 2 минуты, 26 секунд (6.10.2010 - 13:12) arvitaly написал(а):
Не простит, попробуйте выполнить такой дамп

insert into newtable values (0,'aaa;bbb')



ну идея понятна да?


_____________
Сложное - просто. Простое сложно.
Быстрый ответ:

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