Я тестирую обновление сайта Moodle с версии 1.9 до 2.2. На тестовом поле я создал копию своего сайта Moodle 1.9. Чтобы заставить сайт работать в тестовой среде, одна из вещей, которые мне нужно сделать, это обновить жестко запрограммированные URL-адреса на что-то допустимое на тестовой машине. Для этого я использую функциональность admin/replace внутри Moodle 1.9, т.е.
http://mytestsite/admin/replace.php
В полученной форме я указываю, какие URL-адреса следует отключить. В соответствии с документацией, приведенный здесь сценарий затем продолжит просмотр всех таблиц в установке Moodle и запустит сценарий, который выглядит следующим образом:
UPDATE adodb_logsql
SET PARAMS = REPLACE(PARAMS, 'some_url', 'another_url')
Процесс обновления работает нормально. Однако у него есть следующий непреднамеренный побочный эффект:
Некоторый контент на сайте, сохраненный в базе данных, выглядит так, как будто он был поврежден в процессе REPLACE:
Before: Welcome to Company’s Learning
After : Welcome to Company’s Learning
Согласно MySQL, оператор REPLACE является многобайтовым безопасным< /а>.
Мои вопросы:
- Что я делаю не так? Простой
REPLACE
не должен иметь этих странных побочных эффектов. - Есть ли простой способ устранить ущерб?
Тестовый сервер: * IIS 7 * PHP 5.3.13 * MySQL Server 5.5
utf8_general_ci
. - person Ryan   schedule 21.06.2012