Mam złożoną strukturę, która jest zapisana w bazie danych MySQL przy użyciu funkcji sericalize(), a następnie przekonwertowana z powrotem przy użyciu metody unserialize(). Po migracji systemu z PHP 5.3 do PHP 5.6 i odserializowaniu w 5.6 danych, które były serializowane na 5.3, struktury są uszkodzone. Niektóre odniesienia do obiektów są teraz wyświetlane jako tablice.Migracja serializacji PHP z PHP 5.3 do PHP 5.6
Moje pytania są następujące:
Czy istnieje specyfikacja o różnej kodowania używanego przez serializacji/odserializacji w różnych wersjach PHP? (Nie mogłem znaleźć niczego konkretnego w moich wyszukiwaniach w Google lub w dokumentacji na PHP.net)
Jak mogę przekonwertować dane serializowane z kodu PHP 5.3 na kodowanie PHP 5.6?
Witam, Czy możesz podać więcej informacji o serializowaniu? Czy jest to klasa, czy tylko zbiór danych? –
Po deserializacji obiektów należy uwzględnić definicje klas w kodzie. Jeśli więc testujesz poza zwykłą podstawą kodu z miejsca, w którym zapisałeś obiekty, lub jeśli zmieniłeś strukturę obiektu, nie będą one poprawnie deserializowane. Jeśli chcesz zmienić strukturę obiektu, zachowaj stare obiekty, a następnie odtwórz nowe obiekty, korzystając z nowej struktury i ponownie zsynchronizuj. (Nie publikuję jako odpowiedzi, ponieważ nie jestem w stanie jej przetestować - ale są to rzeczy, których należy szukać!). – Robbie