![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Mam zapisaną tablicę elementów i zserializowaną a następnie zapisaną do bazy danych w kolumnie o typie 'text'. Eksport danych działa bez zarzutu i import do innej tak samo, ale gdy chcę odczytać dane z tej kolumny, to dostaję błąd funkcji unserialize:
Kod unserialize() [function.unserialize]: Error at offset 82 of 408 bytes A tak wygląda zserializowana treść: Kod a:2:{s:11:"firstColumn";a:4:{i:0;s:43:"Application\Back\Components\Trigocms\Module";i:1;s:47:"Application\Back\Components\Publications\Module";i:2;s:43:"Application\Back\Components\Products\Module";i:3;s:0:"";}s:12:"secondColumn";a:4:{i:0;s:50:"Application\Back\Components\TrigocmsUpdates\Module";i:1;s:53:"Application\Back\Components\AdminNotifications\Module";i:2;s:45:"Application\Back\Components\Statistics\Module";i:3;s:0:"";}} Operacje importy i eksportu sa dokonywane na systemie Windows XP poprzez phpMyAdmin, na tym samym komputerze i serwerze WAMP. Co może być powodem takiego błędu? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
pokaż kod
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Którą część kodu? Zapis do bazy, pobieranie z bazy, wywolanie funkcji unserialize()?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
pobieranie i deserializacja,
poza tym zobacz co jest pobrane z DB (np var_dump) i treść tego wklej |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Pobieranie za pomocą PDO z DB zapytaniem
A później deserializacja Rezultat var_dump Kod string 'a:2:{s:11:"firstColumn";a:4:{i:0;s:43:"Application\Back\Components\Trigocms\Module";i:1;s:47:"Application\Back\Components\Publications\Module";i:2;s:43:"Application\Back\Components\Products\Module";i:3;s:0:"";}s:12:"secondColumn";a:4:{i:0;s:50:"Application\Back\Components\TrigocmsUpdates\Module";i:1;s:53:"Application\Back\Components\AdminNotifications\Module";i:2;s:45:"Application\Back\Components\Statistics\Module";i:3;s:0:"";}}' (length=432)
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A mi unserialize na tekscie co podales dziala prawidlowo.
Pokaz z czego robisz var_dump() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Z czego robię, to znaczy?
var_dump() wyglądał tak: A mógłbyś spróbować z tymi danymi, które podałem w pierwszym poście i zrobić dokładnie w ten sam sposób jak zrobiłem ja? Ten post edytował adbacz 3.03.2014, 14:13:09 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
bez zmian, wszystko dziala
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
To dziwne. Ta operacja u mnie zawsze wygląda w ten sam sposób, że po eksporcie z jednej bazy i imporcie do innej (nawet na innym serwerze) zawsze się psuje. Już próbowałem importować na hosting w nazwa.pl i home.pl, i tam jest tak samo - po imporcie mam błąd funkcji unserilize().
W jaki sposób robisz import i eksport jeśli można wiedzieć? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie robie importow/eksportow bo nie potrzebuje
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli operujesz na obiektach, a nie wiem co z tym dalej robisz, to żeby wypełnić jakiś obiekt musi być on wcześniej utworzony. Może być też nieaktywne połączenie z bazą. Może być tam też jakiś problem z null przy unserialize.
-------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@viking naprawde myslisz za ja lokalnie mam obiekty ktore on tworzy?
![]() podpowiedz: nie, nie mam, a dziala poza tym widac tu wyraznie, ze nie ma mowy o zadnych obiektach a jedynie o tekstach -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Raczej pisałem do autora żeby zwrócił na to uwagę
![]() Jeszcze mi przychodzi do głowy magic_quotes i problem ze slashami. -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
@nospor - skoro nie robisz importu-eksportu to będzie działać, już tak sprawdzałem. Błąd pojawia się tylko podczas eksportu z bazy danych i importu do drugiej i dopiero po imporcie pobieranie i odserializowanie. Bez tego błąd nie wyskakuje.
@viking - Mógłbyś napisać czym sie sugerowałeś pisząc o obiektach? Nigdzie tutaj wyżej nie ma nic o obiektach, nawet w kodzie, który przekleiłem. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jak wygląda treść zserializowana:
Kod a:2:{s:11:"firstColumn";a:4:{i:0;s:43:"Application\Back\Components\Trigocms\Module";i:1;s:47:"Application\Back\Components\Publications\Module";i:2;s:43:"Application\Back\Components\Products\Module";i:3;s:0:"";}s:12:"secondColumn";a:4:{i:0;s:50:"Application\Back\Components\TrigocmsUpdates\Module";i:1;s:53:"Application\Back\Components\AdminNotifications\Module";i:2;s:45:"Application\Back\Components\Statistics\Module";i:3;s:0:"";}} ale już po imporcie do nowej tabeli, jakich znaków brakuje / zostały dodane podczas importu do nowej tabeli. -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Tablica, którą serializuje:
1. Serializacja i zapis do DB 2. Eksport bazy do pliku 3. Import bazy z pliku do innej bazy 4. Pobranie danych z DB 5. Odserializowanie danych |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Wydaje mi sie ze mogą psuc \ - to są znaki specjalne i powinno raczej byc tak:
'Application\\Back\\Components\\CMS\\Module', Analogicznie reszta -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Możliwe, że tak. Nie wziąłem tego pod uwagę.
Rozwiązałem to w ten sposób, że serializowaną tablicę wrzucam jeszcze w BASE64 i dopiero do DB. W tedy błędu nie ma. Dziękuje za pomoc Panowie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:33 |