从MySQL表反序列化数据并通过PHP输出?

unserialize data from mysql table and output via php?

我的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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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的unserialize()。 在MySQL(或任何其他数据库)中无法做到这一点,这是大多数开发人员更喜欢仅在表中编写逗号分隔值的主要原因。


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

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

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

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

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

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