Получить сериализованное значение в базе данных WordPress

Я пытаюсь запросить значение сериализованного массива в базе данных в WordPress, значение будет храниться в таблице wp_postmeta, в столбце meta_value.
Ну, во-первых, я сохранил массив с помощью функции serialize () из php.
Так, например,

$postID = 1;
$arr = array(1, 2, 3);
$ser_val = serialize($arr);
update_meta_data($postID, '_customvalue', $ser_val);

Сохраненные значения что-то вроде этого

s:30:"a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}";

Затем, когда я попытался получить его, выполнив WordPress SQL запрос. То, что я ожидал, это будет массив, поскольку он хранится в виде массива, но после этого он отображается как строка, а не массив.

    $get_score = $wpdb->get_row("SELECT meta_value FROM wp_postmeta WHERE meta_key = '_cummulativescore'");
$scr = unserialize($get_score->meta_value);
var_dump($scr);

//output displayed
//string(30) "a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}"

Я проверил значение с помощью функции is_array (), в результате он не является массивом
Есть идеи, чтобы получить значение сериализации в виде массива?

0

Решение

Похоже, ваши данные были преобразованы в строку во время сериализации.

Данные должны храниться как

a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}

вместо

s:30:"a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}"

s: 30 означает длину строки 30.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]