【问题标题】:unserialize data from mysql table and output via php?从mysql表中反序列化数据并通过php输出?
【发布时间】:2011-11-08 17:50:24
【问题描述】:

我的 wp_usermeta 表有 4 列,umeta_id |用户 ID |元密钥 |元值 表格图片:

其中一列具有序列化数据 - wp_s2member_custom_fields。如何从 mysql 反序列化或使用 php 输出以查看序列化列中的所有用户数据?

以下是序列化数据的细分: wp_s2member_custom_fields

a:12:{
s:7:"country";
s:2:"CA";
s:4:"city";
s:8:"Brampton";
s:5:"state";
s:7:"Ontario";
s:8:"zip_code";
s:6:"L6T4E7";
s:3:"age";
s:13:"25–34 years";
s:8:"blog_url";
s:22:"http://www.blog.com";
s:16:"blog_description";
s:106:"A blog about blogging";
s:15:"monthly_uniques";
s:4:"1000";
s:13:"facebook_page";
s:55:"http://www.facebook.com/myfacebookpage";
s:14:"facebook_likes";
s:3:"1428";
s:15:"twitter_account";
s:31:"http://twitter.com/mytwitterpage";
s:17:"twitter_followers";
s:3:"5849";}

【问题讨论】:

    标签: php mysql database wordpress


    【解决方案1】:

    从数据库中获取数据并使用 PHP 的unserialize()。在 MySQL(或任何其他数据库)中无法做到这一点,这也是大多数开发人员更喜欢在他们的表中编写逗号分隔的 valies 的主要原因。

    【讨论】:

    • 如何获取数据并将其拉入表中以获取表中的所有数据?
    • 那句话没有任何意义,什么意思?
    • 也就是说,如何将序列化后的数据拉到html表中?
    • SELECT 从数据库中取出,在结果上使用unserialize() 把它变成数组然后解析它。
    【解决方案2】:

    WordPress 通过序列化数组/对象将它们存储在数据库中,因此通常检索函数就是您要查找的函数,因为它会返回未序列化的数据。

    本例中为user_metadata,因此您需要使用函数get_user_meta(),提供$user_id 和$key 参数来检索它。

    在你的例子中,它会是这样的:

    <?php    
    $array = get_user_meta(760, 'wp_s2member_custom_fields');
    var_dump($array);
    



    我希望这会有所帮助并且有意义...

    注意: WordPress Codex 是无价的资源!

    【讨论】:

    • 太棒了!拿这个并将所有用户拉到一个表中怎么样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多