Tôi có một cấu trúc phức tạp được lưu trong cơ sở dữ liệu MySQL bằng cách sử dụng hàm sericalize() và sau đó được chuyển đổi trở lại bằng cách sử dụng unserialize(). Sau khi di chuyển hệ thống từ PHP 5.3 lên PHP 5.6 và unserializing trong 5.6 dữ liệu đã được đăng trên 5.3, các cấu trúc bị hỏng. Một số tham chiếu đến đối tượng giờ đây xuất hiện dưới dạng mảng thay thế.Di chuyển tuần tự hóa PHP từ PHP 5.3 sang PHP 5.6
Câu hỏi của tôi là:
Có một đặc điểm kỹ thuật về mã hóa khác nhau được sử dụng bởi serialization/unserialization trong các phiên bản PHP khác nhau? (Không thể tìm thấy bất kỳ điều gì đủ cụ thể trong các tìm kiếm trên Google của tôi hoặc trong tài liệu trên PHP.net)
Làm cách nào để chuyển đổi dữ liệu tuần tự từ mã hóa PHP 5.3 sang mã hóa PHP 5.6?
Xin chào, Bạn có thể cung cấp thêm thông tin về những gì được bắt chước theo thứ tự không? Nó là một lớp hay chỉ là một mảng dữ liệu? –
Khi bạn deserialize các đối tượng, bạn phải bao gồm các định nghĩa lớp trong mã. Vì vậy, nếu bạn đang thử nghiệm bên ngoài cơ sở mã thông thường của bạn từ nơi bạn lưu trữ các đối tượng, hoặc nếu bạn đã thay đổi cấu trúc đối tượng sau đó họ sẽ không deserialize một cách chính xác. Nếu bạn cần thay đổi cấu trúc đối tượng, giữ các đối tượng cũ, và sau đó tạo lại các đối tượng mới bằng cách sử dụng cấu trúc mới và reserialize. (Không đăng câu trả lời vì tôi không ở vị trí để kiểm tra nó - nhưng chúng là những thứ cần tìm!) – Robbie