【发布时间】:2016-11-16 13:41:48
【问题描述】:
首先,如果这似乎是一个愚蠢的问题,我很抱歉。我是这个“反序列化”命令的新手,我在这里阅读了很多关于它的信息,但我仍然真的不知道如何实现它来获得我需要的东西。
让我解释一下我现在有什么,我需要什么。
我现在有这个代码:
$consultametacat = $wpdb->get_row("
SELECT post_id,
meta_key,
meta_value
FROM cg_postmeta
WHERE post_id = '".$consultapost->ID."'
AND meta_key LIKE '_category_permalink'
",
ARRAY_A
);
这会将查询的结果保存到 ARRAY_A 中的数据库中
然后我在像这样的其他行上得到这个值:
$category_color = get_tax_meta($consultametacat['meta_value'],'pm_color_field_id');
$category_name = get_term_by('id', $consultametacat['meta_value'], 'category',ARRAY_A);
$category_name = get_term_by('id', $consultametacat['meta_value'], 'category',ARRAY_A);
$category_link=get_category_link($consultametacat['meta_value']);
到目前为止,它运行良好,因为 meta_value 直到两周前还是一个整数。现在,数据库中“_category_permalink”字段中的旧条目具有整数,但新条目具有如下序列化数据:
a:1:{s:8:"category";s:2:"23";}
所以,我需要做的是设置一个条件并根据该条件进行反序列化,以始终获得一个整数。逻辑是这样的:
-如果结果为
$consultametacat = $wpdb->get_row("
SELECT post_id,
meta_key,
meta_value
FROM cg_postmeta
WHERE post_id = '".$consultapost->ID."'
AND meta_key
LIKE '_category_permalink'
",
ARRAY_A
);
是一个整数,然后正常保存该值。但如果它导致序列化的行,然后反序列化,获取数值(在我的示例中,来自行 a:1:{s:8:"category";s:2:"23";} 的 23)和保存该数值。
如何做到这一点?
非常感谢您提前提供的所有帮助。
【问题讨论】:
标签: php serialization deserialization