2015-11-22 89 views
1

在MySQL(WordPress的)有一个post_metadata以下值:PHP序列化字符串格式

a:1:{i:0;a:2:{s:5:"title";s:7:"Payment";s:19:"percentage_complete";s:1:"5";}} 

我们这样做:

$value_percentage = array (
     0 => 
     array (
     'title' => 'Payment', 
     'percentage_complete' => '15', 
    ), 
    ); 
$serializedData = serialize($value_percentage); 
update_post_meta($id, $field_percentage, $serializedData); 

但在DB有:

s:78:"a:1:{i:0;a:2:{s:5:"title";s:7:"Payment";s:19:"percentage_complete";s:2:"15";}}"; 

如何避免s:78:"

我们也试过如下:

$value_percentage['percentage_complete'] = '15'; 

但在s:78:"数据库

+1

尝试直接使用_ $ value_percentage_变量。 'update_post_meta($ id,$ field_percentage,$ value_percentage);' – David

回答

1

您可以使用maybe serializemaybe_unserialize功能存储和提取数据

也许反序列化

$string = 'a:1:{i:0;a:2:{s:5:"title";s:7:"Payment";s:19:"percentage_complete";s:1:"5";}}'; 
echo '<pre>', print_r(maybe_unserialize($string), 1), '</pre>'; 

的输出是这样的,

Array (
    [0] => Array (
      [title] => Payment 
      [percentage_complete] => 5 
     ) 

) 

也许序列

$value_percentage = array (
     0 => 
     array (
     'title' => 'Payment', 
     'percentage_complete' => '15', 
    ), 
); 
echo '<pre>', print_r(maybe_serialize($value_percentage), 1), '</pre>'; 

输出

a:1:{i:0;a:2:{s:5:"title";s:7:"Payment";s:19:"percentage_complete";s:2:"15";}}

+0

谢谢你正在工作 –