За последние 24 часа нас посетил 51681 программист и 1766 роботов. Сейчас ищут 833 программиста ...

подмена символов в базе

Тема в разделе "Прочие вопросы по PHP", создана пользователем serj011, 24 дек 2012.

  1. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    Доброй ночи!

    В поле target данные записаны в таком формате - a:3:{i:0;s:2:"t1";i:1;s:2:"t3";i:2;s:2:"t9";}

    Необходимо в цикле обновить поле target в таблице anketa и поменять t1, t2....t13 на s1, s2....s13

    Подскажите пожалуйста
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    заводи отдельную таблицу =)
    начерта вообще так делать было?
     
  3. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    igordata у меня так сделано и так оно пока и будет) помогите по существу вопроса пожалуйста
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не буду. так делать нельзя. и незачем.
     
  5. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    igordata, скажи что не знаешь))))
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в душе не ебу каким образом можно заставить SQL корректно произвести замены в подстроке где может быть и t1 и t13.
    Единственное, что приходит на ум - начать с большого числа и двигаться в сторону единички. Т.е. сначала меняем t13 на s13 без разбору, потом уже t1.

    Мне правда кажется, что в если там никакого текста не встречается и всё именно так как ты показал, то можно вообще без разбору махнуть все буквы t на буквы s не глядя.
     
  7. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    с этого и начинать нужно было))
    Все именно так... ) и вот решение) $result = mysql_query ("UPDATE `anketa` SET `target` = REPLACE(target, 't', 's') WHERE .....");
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
     
  9. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    А после того как ты заменил s на t - unserialize работает?
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да заработает. у него t только в кавычках встречалось