从mysql表中反序列化数据并通过php输出?

时间:2011-09-01 21:03:46

标签: php mysql database wordpress

我的wp_usermeta表有4列,umeta_id | user_id | meta_key | meta_value 表格图片: enter image description here

其中一列有序列化数据 - 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";}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

在这种情况下,它是 user_metadata ,因此您需要使用函数get_user_meta(),您可以使用$ user_id和$ key参数来检索它。

在您的示例中,它将是这样的:

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



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

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