如何从mysql的meta_value中提取某些数据

问题描述

| 我在wordpress中有一个表格,表格中的内容为
wp_usermeta
,其中包含and1 called,还有一个名为holds2ѭ的值,其中包含一堆串联值,如下所示。 如何提取此值中
monthly_uniques
旁边的数据?
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:\"128\";
s:15:\"twitter_account\";
s:31:\"http://twitter.com/mytwitterpage\";
s:17:\"twitter_followers\";
s:3:\"392\";}
实际上,这些值都在一行上,为清楚起见将它们放在单独的行上 我需要以不同的方式提取此数据以显示报告。我如何添加以下语句来提取
montly_uniques
,城市,邮政编码等?     

解决方法

当Wordpress在其数据库中输入数组时,它将执行称为序列化的操作,该操作会将数组转换为您提供的字符串格式。要反转此过程并返回相同的数组,您只需要通过PHP的内置unserialize()函数在上方运行该字符串,该函数将以您上面提到的方式返回一个关联数组。 所以像这样:
$string = \'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:\"128\";s:15:\"twitter_account\";s:31:\"http://twitter.com/mytwitterpage\";s:17:\"twitter_followers\";s:3:\"392\";}\';

$array = unserialize($string);

$array[\'monthly_uniques\']; //This will give you the monthly_uniques field.
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...