Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как редактировать .sql-файл, чтобы им вставлять данные в БД, а не только структуру?

70K
10 мая 2011 года
KS-10
2 / / 10.05.2011
У меня есть .sql-файл ~9 мегабайт, я отправляю его в phpMyAdmin на импорт, он успешно импортируется, но создаётся только структура таблиц, а данные не добавляются. Я посмотрел .sql-файл: там вместо вставки (INSERT INTO) для данных везде UPDATE.
Как подредактировать тот файл, чтобы и данные вставлялись? Есть для этого какие-нибудь программы, которыми это можно быстро осуществить?
278
10 мая 2011 года
Alexander92
1.1K / / 04.08.2008
Как по мне, так проще одну собственную регулярку написать, чем искать готовые программы. Покажите дамп, если структура относительно простая, то это самый лучший вариант, я думаю.
70K
10 мая 2011 года
KS-10
2 / / 10.05.2011
Вот такой дамп (понял, что таблицы information_schema не нужны - убрал):
http://x64it.ru/files/__RESTORE__.zip
244
10 мая 2011 года
UAS
2.0K / / 19.07.2006
Дык, насколько я помню синтаксис, mysql схавает запрос, если тупо просто UPDATE заменить на INSERT INTO. В общем, да, тут достаточно одной регулярки - для замены UPDATE на INSERT и отсечения "WHERE ..."
278
10 мая 2011 года
Alexander92
1.1K / / 04.08.2008
Код:
<?php
    $fp = fopen('__RESTORE__.sql', 'r');
    $fp_new = fopen('__RESTORE__new.sql', 'w');
    if ($fp && $fp_new) {
        while (!feof($fp)) {
            $s = fgets($fp);
                fprintf($fp_new, "%s", preg_replace('/^UPDATE `(.+)`(.+) WHERE.+$/Usi', 'INSERT INTO `\1` \2;', $s));
        }
        fclose($fp);
        fclose($fp_new);
    } else
        echo 'An error occured while opening files.';
?>
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог