2009-12-17 4 views
0

J'ai un tableau d'objets Shift avec lequel je travaille en PHP. J'ai besoin de stocker ces objets dans une base de données. Je travaille sur une fonction qui ajoutera des changements à la base de données:Impossible de désérialiser un tableau d'objets dans php

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

Bien sûr ce que je veux quand j'exécute c'est:

last_monday_from_date: 1260777600 
MasterShiftArray returns falseSerialized_S:admin,resource,2,1;admin,resource,2,1;admin,resource,2,1;admin,resource,2,1; 
MasterShiftString: 
end 

Qu'est-ce que je fais mal ici? J'ai essayé l'encodage base64, mais cela ne fait rien pour vous aider. MasterShiftArray est pas un tableau ....

Répondre

1

Ce:

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

regarde rien du tout comme un tableau sérialisé PHP, qui est votre problème. Poubelle dans = poubelle.

En supposant que c'est le format de données que vous avez besoin de traiter, utilisez explode pour le diviser en un tableau sur ';', puis exploser chaque membre de ce tableau sur ','.

+0

Que fait-il alors? –

+0

OMG ... Je suis désolé .... Je me sens comme un idiot complet maintenant ... Je mis dans le mauvais var. –

Questions connexes