2013-08-16 3 views
-2

Я использую MySQL OUTFILE для экспорта CSV моей базы данных. У меня есть сериализованное поле, и мне было интересно, есть ли способ отключить его в CSV, используя запрос MySQL. Я в тупике!Unserialize поле MySQL в outfile

Любая помощь будет принята с благодарностью.

ответ

0

Я предполагаю, что вы имеете в виду вы сериализовать его с PHP. MySQL не понимает сериализации PHP, AFAIK, поэтому он не может. Кроме того, сериализованные данные, которые я предполагаю, представляют собой массив или объект? Это скорее всего сломает файл CSV.

Вам лучше вытащить данные из запроса самостоятельно, обработать его, а затем использовать встроенные в PHP функции обработчика CSV для генерации CSV так, как вы хотите.

0

вы не можете сделать это с MySQL

MySQL не знает, что такое PHP сериализации. Вы не можете этого сделать.

вы должны сделать PHP сериализации делать с CSV-файлов

+0

Вот что я подумал; есть ли способ для меня что-то вставить в outfile с PHP? Или мне придется идти совсем по другому пути с созданием CSV? – user1116801

+0

Для этого вам нужно опубликовать код, чтобы понять его, вы можете использовать функцию serializ и unserializ для PHP для вашего csv – liyakat

0

Вы в основном есть два варианта:

  1. Экспорт из MySQL, а затем использовать PHP читать и изменять этот файл
  2. Использование PHP для доступа к базе данных напрямую, и написать свой файл экспорта

Хотя является теоретически возможно создать хранимую процедуру MySQL или, возможно, настраиваемое расширение сервера, которое могло бы нестириализировать данные PHP, было бы намного сложнее, чем просто использовать PHP для этого.

Нетрудно написать небольшую программу PHP для изменения CSV-файла. Вот один из ответов, который показывает вам несколько примеров: parse csv file using php line by line

Что касается написания кода для прямого доступа к базе данных, то в руководстве по PHP. Вы можете увидеть пример того, как читать базу данных прямо здесь: http://www.php.net/manual/en/mysqli.quickstart.dual-interface.php