开发者

Cannot Unserialize an object array in php

开发者 https://www.devze.com 2022-12-14 17:47 出处:网络
I have an array of Shift objects that I\'m working with in PHP. I need to store these objects within a database. I\'m working on a function that will add shifts to the database:

I have an array of Shift objects that I'm working with in PHP. I need to store these objects within a database. I'm working on a function that will add shifts to the database:

$Serialized_S = get_option('MasterShiftString');
$MasterShiftArray = unserialize($Serialized_S);

if(!$MasterShiftArray)
{
    echo "MasterShiftArray returns false";
}//end if

echo "Serialized_S:";
print_r($Serialized_S); 
echo "<br />MasterShiftString:";
print_r($MasterShiftString); 
echo "<br />end<br />"; 



if(!is_array($MasterShiftArray))
{
    echo "MasterShiftArray is not an Array....";
    $MasterShiftArray = array($last_monday_from_date => "");

}//end if
else
{


}//end else 

$WeekShiftArray = $MasterShiftArray;

array_push($WeekShiftArray, $CurrentShift);         

$MasterShiftArray[$last_monday_from_date] = $WeekShiftArray;

$Serialized_s = serialize($MasterShiftArray);

update_option('MasterShiftArray', $Serialized_s);

Of course what I'm getting when I execute this is:

last_monday_from_date: 1260777600
MasterShiftArray returns falseSerialized_S:admi开发者_StackOverflow中文版n,resource,2,1;admin,resource,2,1;admin,resource,2,1;admin,resource,2,1;
MasterShiftString:
end

What am I doing wrong here? I've tried the base64 encoding, but that doesn't do anything to help. MasterShiftArray is not an Array....


This:

admin,resource,2,1;admin,resource,2,1;admin,resource,2,1;admin,resource,2,1

looks nothing at all like a PHP serialized array, that's your problem. Garbage in = garbage out.

Assuming that's the data format you need to deal with, look into using explode to break it into an array on ';', then explode each member of that array on ','.

0

精彩评论

暂无评论...
验证码 换一张
取 消