Я столкнулся с проблемой несериализации данных из таблицы базы данных. Я сериализую данные и сохраняю их в таблице. Когда я получаю данные, я не могу получить их правильно. Ниже мой код.
$miscel = serialize(array($_POST['Prod_Price'],$_POST['Prod_Cond']));
Я успешно вставил данные в базу данных. В таблице базы данных это выглядит так:
s:38:"a:2:{i:0;s:4:"4444";i:1;s:6:"Middle";}
Как я могу получить данные правильно?
в чем именно проблема?: Вы должны просто вызвать unserialize()
для извлечения ваших данных в исходной форме:
// assuming your database column 'foo' contains // s:38:"a:2:{i:0;s:4:"4444";i:1;s:6:"Middle";} $miscel = unserialize($row['foo']); print_r($miscel); // returns array([0] => 4444, [1] => 'Middle');
Если проблема кроется в том, что сериализуемые данные не очень читаемы , вам следует также рассмотреть возможность хранения ключей массива :
$miscel = serialize(array('price' => $_POST['Prod_Price'], 'cond' => $_POST['Prod_Cond']));
Вам нужно использовать функцию unserialize . Это вернет все обратно в массив.
$records = array( 'name'=>'abc', 'mobile'=>'1234566789', 'address'=>'test', 'email'=>'test@test.com'); $records_serialize = serialize($records); echo "serialize<br/>"; print_r($records_serialize); echo "<br/><br/>unserialize<br/>"; $records_unserialize = unserialize($records_serialize); print_r($records_unserialize);
Здесь код для использования serialize и unserialize
вывод
serialize a:4:{s:4:"name";s:3:"abc";s:6:"mobile";s:13:"1234566789";s:7:"address";s:4:"test";s:5:"email";s:13:"test@test.com";} unserialize Array ( [name] => abc [mobile] => 1234566789[address] => test [email] => test@test.com )