I\'m using the Serialize function to store an array in my MYSQL database, and then I\'m unSerialize Him in other page. The array structure look like this :
Array
The opposite of serialize is unserialize.
$old_array = unserialize($serialized_array_string_from_db);
Storing values serialized into the database, disallows to query them individually. You have to fetch the serialized value, unserialize and then you can start working with them. This is not very efficient from a database design perspective. My suggestion is to create individual fields for "names" and "rating" in a extra table.
Store Array serialized to Database
$array = array('names' => 'somename1', 'rating' => 10);
$array_serialized_to_string = serialize($array);
doStoreToDb($array_serialized_to_string, somewhere);
Fetch Serialized Array from Database
$array_serialized_to_string = doFetchFromDb(somewhere);
$array = unserialize($array_serialized_to_string);
The difference in array structure might be the result from querying "the return set as array". Just remove the outer array:
$old_array = unserialize($serialized_array_string_from_db);
$array = $old_array[0];
Try json_encode
and json_decode
$array_to_store = array(....);
$str_array = json_encode($array_to_store);
//Store $str_array
//Retrieve it and to make it an array again
$array = json_decode($str_array, true);
******************* Edited *********************
I do not see what is wrong with serialize and unserialize:
$array = array(
array(
'names' => 'somename1',
'rating' => 10
),
array(
'names' => 'somename2',
'rating' => 9
)
);
//Array before
print_r('<pre>');
print_r($array);
//Serialised Array
$s = serialize($array);
print_r('<pre>');
print_r($s);
//Unserialised Array
print_r('<pre>');
print_r(unserialize($s));