Как извлечь определенные данные из meta_value в mysql - PullRequest
1 голос
/ 25 мая 2011

У меня есть таблица внутри WordPress, которая составляет wp_usermeta с полем meta_key и значением, называемым wp_s2member_custom_fields, которое содержит несколько объединенных значений, как показано ниже.

Как мне извлечь данные рядом с 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, город, почтовый индекс и т. Д.?

1 Ответ

2 голосов
/ 25 мая 2011

Когда Wordpress вводит массив в свою базу данных, он делает что-то под названием Serializing, где он превращает массив в формат предоставленной вами строки.Чтобы полностью изменить этот процесс и получить тот же массив, вам просто нужно запустить эту строку через встроенную в 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...