【问题标题】:Unserialize MySQL field into outfile将 MySQL 字段反序列化为 outfile
【发布时间】:2013-08-16 07:50:38
【问题描述】:

我正在使用 MySQL OUTFILE 导出我的数据库的 CSV。我在那里有一个序列化字段,我想知道是否有办法让我使用 MySQL 查询在 CSV 中取消序列化它。我被难住了!

任何帮助将不胜感激。

【问题讨论】:

    标签: php mysql file-io


    【解决方案1】:

    我假设您的意思是您使用 PHP 对其进行了序列化。 MySQL不理解PHP序列化,AFAIK,所以它不能。另外,我假设的序列化数据是数组还是对象?这很可能会破坏 CSV 文件。

    您最好自己从查询中提取数据,对其进行处理,然后使用 PHP 的内置 CSV 处理程序函数以您想要的方式生成 CSV。

    【讨论】:

      【解决方案2】:

      你不能用mysql做到这一点

      MySQL 不知道 PHP 序列化是什么。你做不到。

      你应该对你的 csv 文件进行 php 序列化

      【讨论】:

      • 我是这么想的;有没有办法让我用 PHP 将一些东西推送到 outfile 中?还是我将不得不走一条完全不同的路线来创建 CSV?
      • 因为你必须发布一些代码才能清楚,你可以为你的csv使用PHP的serializ和unserializ函数
      【解决方案3】:

      你基本上有两个选择:

      1. 从 MySQL 导出,然后使用 PHP 读取和修改该文件
      2. 使用PHP直接访问数据库,编写你的导出文件

      虽然理论上可以创建一个能够反序列化 PHP 数据的 MySQL 存储过程,或者自定义服务器扩展,但这比仅使用 PHP 困难得多去做吧。

      编写一个小的 PHP 程序来修改 CSV 文件并不难。这是一个向您展示几个示例的答案:parse csv file using php line by line

      至于编写代码直接访问数据库,在PHP手册中。您可以在此处查看如何直接读取数据库的示例:http://www.php.net/manual/en/mysqli.quickstart.dual-interface.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-12
        • 2014-08-10
        相关资源
        最近更新 更多