MySQL replace serialized data (Замена сериализованных данных в MySQL)

Когда-то мне понадобилось поковыряться в стерилизованных данных AltoCMS. В тот раз я набросал костыль в админку на php.

Теперь, после перехода на https, опять столкнулся с проблемой URL'ов — в БД повсеместно URL с домашнего так сказать хоста начинались с http://. Если в обычных стринговых полях замена не составляет никакой сложности:
UPDATE prefix_topic_photo SET path = REPLACE(path, 'http://site.ru/', 'https://site.ru/');

то с стерилизованными данными пришлось чуть повозиться. В сети куча костылей на php (и для WordPress, кстати подавляет), но так лениво...

Нашел пример для SQL сервера ну и быстренько пофиксил все свои URLы (например):
UPDATE prefix_topic_content 
SET topic_extra = REPLACE(
	topic_extra, 
    CONCAT(
		's:',
		SUBSTRING(topic_extra, instr(topic_extra, ':"http://img.youtube.com/')-2,2),
		':"http://img.youtube.com/'
        ),
	CONCAT(
		's:',
		SUBSTRING(topic_extra, instr(topic_extra, ':"http://img.youtube.com/')-2,2)+1,
		':"https://img.youtube.com/'
        )
        
)
WHERE topic_extra LIKE '%:"http://img.youtube.com/%';

З.Ы. не споткнитесь с URL-полями трёхзначной длинны —).

Похожие статьи

  • Что за предупреждения в журнале?
    Не первый раз обнаруживаю в журнале ошибок такие сообщения: E_WARNING [2] mysqli::real_connect(): (42000/1203): User xxxxxx already has more than 'max_user_connections' active connections (/xxxxxxxxx/sovunion....
  • Два сайта с общими таблицами пользователей
    Путём манипуляций с конфигами удалось частично решить вопрос по сабжу. Но толку от этого ноль, т.к. на double-сайте юзер не может создать блог или топик: ошибки, указывающие на FOREIGN KEY и ссылающиеся на различные...
  • Как очистить БД от ненужных таблиц?
    Вот где-где, но тут я точно полный ноль... Я даже правильный запрос в поисковик сделать не могу (ну не в теме я...). В общем, после переезда с LS на Alto (с помощью конвертации базы данных при установке) в БД...
  • Замена подстроки в сериализованных данных БД
    Наступив на заботливо подложенные авторами грабли в виде хранения путей к изображениям в абсолютном виде (http://...) — исправляем данные в БД.

0 комментариев

Автор статьи запретил добавлять комментарии