0

我正在尝试使用 update_post_meta 函数将序列化数据插入到 wp_postmeta 表中。

但是,当我将数据插入表中时,它正在被更改。例如,这是我要插入的内容:

update_post_meta($feed_id, 'wprss_ftp_taxonomies', 'a:3:{i:0;a:6:{s:8:"taxonomy";s:6:"source";s:5:"terms";a:1:{i:0;s:3:"'.$source_slug.'";}s:4:"auto";s:5:"false";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}i:1;a:6:{s:8:"taxonomy";s:5:"topic";s:5:"terms";s:0:"";s:4:"auto";s:4:"true";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}i:2;a:6:{s:8:"taxonomy";s:10:"categories";s:5:"terms";s:0:"";s:4:"auto";s:5:"false";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}}');

所以我的序列化数据是这样的:

a:3:{i:0;a:6:{s:8:"taxonomy";s:6:"source";s:5:"terms";a:1:{i:0;s:3:"'.$source_slug.'";}s:4:"auto";s:5:"false";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}i:1;a:6:{s:8:"taxonomy";s:5:"topic";s:5:"terms";s:0:"";s:4:"auto";s:4:"true";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}i:2;a:6:{s:8:"taxonomy";s:10:"categories";s:5:"terms";s:0:"";s:4:"auto";s:5:"false";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}}

然而它被插入到数据库中是这样的:

s:577:"a:3:{i:0;a:6:{s:8:"taxonomy";s:6:"source";s:5:"terms";a:1:{i:0;s:3:"abc";}s:4:"auto";s:5:"false";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}i:1;a:6:{s:8:"taxonomy";s:5:"topic";s:5:"terms";s:0:"";s:4:"auto";s:4:"true";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}i:2;a:6:{s:8:"taxonomy";s:10:"categories";s:5:"terms";s:0:"";s:4:"auto";s:5:"false";s:14:"filter_subject";s:0:"";s:15:"filter_keywords";s:0:"";s:28:"post_taxonomy_compare_method";s:3:"all";}}";

它看起来像是将其作为字符串插入,而不仅仅是将值设置为我输入的原始序列化数据。

我不知道如何纠正这个问题,因为我不经常直接使用序列化数据。

任何见解将不胜感激。

4

1 回答 1

1

您可以“反序列化”,这将正常工作

$data   =    unserialize( 'YOUR_CODE_SERIALIZED_HERE' );
update_post_meta($feed_id, 'wprss_ftp_taxonomies', $data);
于 2020-11-07T03:30:44.937 回答