проблема несериализации

Я столкнулся с проблемой несериализации данных из таблицы базы данных. Я сериализую данные и сохраняю их в таблице. Когда я получаю данные, я не могу получить их правильно. Ниже мой код.

$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 )