我的数据库中有以下值:
a:2:{s:4:"ques";a:2:{i:0;i:15;i:1;i:17;}s:5:"marks";a:2:{i:0;s:1:"2";i:1;s:1:"2";}}
我尝试执行以下操作以将值传入我的数据库:
$question["ques"] = '15';
$question["ques"] = '17';
$question["marks"] = '1';
$question["marks"] = '1';
$questions = serialize($question);
update_post_meta($quiz_id, 'quiz_questions1', $questions);
这不会正确更新数据库。我使用它的输出如下:
a:2:{s:4:"ques";s:2:"17";s:5:"marks";s:1:"1";}
任何想法如何做到这一点?
答案 0 :(得分:3)
如果你有一个序列化的数据结构,那么理解它的最简单的方法是反序列化它,并用print_r()
向你自己显示。
<?php
$s = 'a:2:{s:4:"ques";a:2:{i:0;i:15;i:1;i:17;}s:5:"marks";a:2:{i:0;s:1:"2";i:1;s:1:"2";}}';
$array = unserialize($s);
print_r($array);
将显示
Array
(
[ques] => Array
(
[0] => 15
[1] => 17
)
[marks] => Array
(
[0] => 2
[1] => 2
)
)
所以现在你只需要用新数据复制那个结构
$array = array();
$array['ques'] = array(15, 17);
$array['marks'] = array('1', '1');
// take a look to check
print_r($array);
// and if it is good. Serialize it and store it on the database
$questions = serialize($array);
update_post_meta($quiz_id, 'quiz_questions1', $questions);