За последние 24 часа нас посетили 44490 программистов и 1804 робота. Сейчас ищут 904 программиста ...

Разделение дампа sql на отдельный запросы

Тема в разделе "Прочие вопросы по PHP", создана пользователем NaTTs, 4 ноя 2006.

  1. NaTTs

    NaTTs Guest

    Здравствуйте, коллеги)
    Возникла необходимость разбить код дампа mysql, полученного с помощью утилиты mysqldump, на запросы. Естесственно, весь дамп базы одним разом на сервер не пошлешь...
    Казалось бы решение легко - explode(';', $sqlDumpCode) но
    есть проблемы. Допустите, что внутри текстовых полей какой-нить таблицы будут эти самы точки с запятыми? тогда запрос порубится неправильно, запись будет потеряна.
    Впринципе - куда копать понятно. Нужно смотреть, если точка с запятой находятся внутри незакрытой пары одинарных кавычек - это текстовое поле, рубить запрос не надо, но написание такого кода муторно, нет ли готового решения, разделяющего дамп sql на запросы?
     
  2. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    а что сложного прогнать по циклу, и считать число встреченных одинарных кавычек. когда встречаешь ; то смотришь это число - если четное все что было до него запоминаешь как отдельный запрос, если нечетное то игнорируешь
     
  3. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    может признак конца запроса сделать чуть длинее, что сделает менее вероятным его попадание в часть строки?... например: );\n
     
  4. NaTTs

    NaTTs Guest

    Оптимально второе. Пришлось потратить лишние полчаса, зато работает.
    Вариант avm - впринципе может и не плох, но может и не сработать, мало ли, какую там статью кто-нибудь напишет...
    Спасибо.
     
  5. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    прикол в том что этот "мало ли кто" в статье может запросто ошибиться с количеством кавычек... :)
     
  6. NaTTs

    NaTTs Guest

    Разобрался-) Просто бинарник mysql вызываю, предворительно загоняя в файл весь дамп... ну вот и все вобщем-то. Там синтаксический анализ лучше
     
  7. vb

    vb Активный пользователь

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    Просто вопрос поставлен не верно, вернее решение не соответствует вопросу, так и хочется перенести тему в программирование для новичков. У кого-нибудь из модераторов есть схожее мнение? Если да то переносите нафиг.
     
  8. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    есть... еще было желание в помойку.
     
  9. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    мнение есть, прав нет
     
  10. Anonymous

    Anonymous Guest

    Ха. Мнение есть... права есть...
    // Topic Moved. Горбунов.