mysql — лучший способ экспортировать данные БД в PHP, изменить их и импортировать

Мне нужно экспортировать данные в выбранные таблицы из базы данных MySQL и импортировать их в другую базу данных MySQL с немного другой структурой. Итак, мне нужно изменить данные между экспортом и импортом (а не только имена полей).

Я попытался использовать json_encode и json_decode, и он почти работает, но если все данные не являются чисто utf8, json_encode падает, и utf8_encode не решает эту проблему.

Я рассматриваю CSV, сериализацию и генерацию SQL в PHP. Какой из этих вариантов даст мне самый надежный перевод?

1

Решение

Вероятно, вы могли бы использовать PDO для запроса и создания массива объектов, которые можно напрямую изменить в коде. Затем используйте эти данные для импорта в другую базу данных.

Лучший вопрос, почему UTF-8 не работает для вас. Убедитесь, что вы используете последнюю версию PHP.
Также убедитесь, что вы используете mb_ префиксные функции для поддержки кодировки UTF-8 (или другого многобайтового).

Список функций PHP MultiByte String

0

Другие решения

Вы также можете формировать данные во время экспорта, в зависимости от того, как вы выгружаете данные, используя инструкцию SELECT и переупорядочивая столбцы или выборочно опуская некоторые или используя условные выражения для изменения данных. Результатом по-прежнему будет набор строк и столбцов. Пока они соответствуют структуре вашего пункта назначения, вы можете выполнить слепой импорт. Скорее всего, вы используете mysqldump или что-то еще, что не так просто. В зависимости от необходимых изменений вы всегда можете использовать SQL для изменения данных и после повторного импорта.

Поскольку SQL создан для манипулирования данными, это может быть самый простой способ справиться с вещами, а не пытаться анализировать тонны вещей с помощью PHP, пока он находится в дамп-формате.

0

Моя проблема не была вызвана проблемой с json_encode, как я думал. Вместо этого проблема была неисправным левым соединением.

Таким образом, ответ заключается в том, что все перечисленные методы являются надежными, если ваш запрос сформирован правильно.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector