POST_META数据需要取消序列化吗?

时间:2012-09-24 作者:neeraj

是否可以在运行时取消mysql查询中的序列化数据?我不想使用php的unserialize()函数。

我需要使用mysql查询从保存在wp\\U Posteta表中的以下序列化值中获取值“mathematics”。

a:4:{s:39:"wpcf-fields-checkboxes-option-223412915";s:7:"science";s:39:"wpcf-fields-checkboxes-option-499894518";s:10:"technology";s:40:"wpcf-fields-checkboxes-option-1474335177";s:11:"engineering";s:40:"wpcf-fields-checkboxes-option-1018405300";s:11:"mathematics";}

Array
(
[wpcf-fields-checkboxes-option-223412915] => science
[wpcf-fields-checkboxes-option-499894518] => technology
[wpcf-fields-checkboxes-option-1474335177] => engineering
[wpcf-fields-checkboxes-option-1018405300] => mathematics
)

2 个回复
SO网友:Otto

理想情况下,post-meta从一开始就不应该以序列化的形式存储,从而使其易于查询。如果代码使用标准方法来存储元数据,而不是对其进行自序列化,那么每个项都将位于自己的行中,并且易于查询。

如果数据是序列化存储的,那么您只有很少的选项。SQL本身无法取消序列化数据。您必须使用PHP代码处理它。

SO网友:swtshweta

可以使用get\\u post\\u meta()函数获取此值。对于ex。

<?php
$options = get_post_meta( $post->ID, \'meta_key_name\', true ); //replace meta_key_name with the name of your meta_key
$value = $options[ \'wpcf-fields-checkboxes-option-1018405300\' ]; //for fetching mathematics value
?>

结束

相关推荐

Server database problem

我刚刚将我的网站从共享服务器转移到VPS,但它并没有启动,当我向VPS技术支持询问时,他们给我发了一封电子邮件,我不理解:-电子邮件您的网站“www.onlinemba.co.in”已经从以前的主机迁移而来,我们现在在访问依赖于数据库的php文件时得到一个空白页面。数据库编码似乎有问题,因为所有其他php文件的访问都很好,数据库连接也没有问题。您可以通过访问网站预览URL来检查相同的内容“http://38.100.101.228/info.php“。您的Kloxo面板详细信息如下URL:XXXXX用户: