Skocz do zawartości
Krzychu13

Krzaki po przeniesieniu bazy

Polecane posty

Witajcie.

 

Tematów było milion, odpowiedzi jeszcze więcej. Zdaję sobie z tego dokładnie sprawę jednak szukałem, ale dalej racjonalnego rozwiązania dla swojego problemu nie znalazłem, więc postanowiłem opisać swój problem tutaj. Zakupiłem u innego dostawcy serwer. Obecny jeszcze działa, ale niedługo kończy się jego ważność. Wczoraj zacząłem przenosić swoje witryny. Wszystkie przebiegło znakomicie, dopóki nie musiałem przenieść bazy swojej strony na php fusion, dodam - wersje v7.

 

Wykonuję Import bazy. Otwieram ją Pajączkiem, zmieniam nazwę bazy danych, localhost. Wszystko pięknie. Wgrywam na nowy serwer i.. i lipa. Mam krzaczki. Eksportuje w UTF8. Wersje phpMyAdmina - takie same. Aż tak głupi nie jestem. Dobrałem się i zauważyłem, że w bazie na starym serwerze pliki te są zapisane w latino1 .. Czytałem wiele porad, tutoriali. Kombinuje, kombinuje, ale efektu nie ma.

 

Przeczytałem coś, że trzeba zmienić w strukturze i będzie śmigać. Dwa pierwsze pliki w ten sposób zmieniłem, ale nic to nie dało.

 

rahxsa.jpg

 

Tak przykładowo wygląda ep_comments:

 

rahnsr.jpg

 

Ktoś polecił mi ten skrypt do tego:

 

mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci");
$res = mysql_query("SHOW TABLES FROM `$dbname`");
while($row = mysql_fetch_row($res)) {
$query = "ALTER TABLE {$dbname}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_polish_ci";
mysql_query($query);
$query = "ALTER TABLE {$dbname}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci";
mysql_query($query);
}

 

Fajnie. Wchodzę w PMA, klikam SQL, wklejam, wykonuje i otrzymuje komunikat:

 

Błąd

zapytanie SQL:

mysql_query(
"ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci"
);

MySQL zwrócił komunikat: Dokumentacja
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_po' at line 1 

 

Co więc drodzy forumowicze robię nie tak ? Nie znam się za dobrze na PMA stąd proszę o w miarę proste słownictwo. Myślę, że problem opisałem najdokładniej jak mogę, ale w razie czego mogę podać jeszcze jakieś informację.. Tylko jak ten problem rozwiązać ?

 

P.S. Dołączę jeszcze adresy witryn, gdyby ktoś chciał spojrzeć jak to wygląda.

1. Strona z poprawnymi znakami

2.Strona z niepoprawnymi znakami

 

Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witajcie.

 

[...]

 

Co więc drodzy forumowicze robię nie tak ? Nie znam się za dobrze na PMA stąd proszę o w miarę proste słownictwo. Myślę, że problem opisałem najdokładniej jak mogę, ale w razie czego mogę podać jeszcze jakieś informację.. Tylko jak ten problem rozwiązać ?

 

P.S. Dołączę jeszcze adresy witryn, gdyby ktoś chciał spojrzeć jak to wygląda.

1. Strona z poprawnymi znakami

2.Strona z niepoprawnymi znakami

 

Pozdrawiam

 

Ale te dane wyciągają ci się poprawnie - w utf-8, tylko stronę masz zadeklarowaną w stronie kodowej iso-8859-2, więc przeglądarka je przekodowuje. Musisz się zdecydować na jeden standard.

 

Co do błędów w phpMyAdminie - próbujesz wkleić kawałek skryptu w PHP jako polecenie SQL - tak się nie da.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Super. Wiem już w takim razie w czym jest problem. Czy teraz mogę otrzymać odpowiedź jak go rozwiązać ?

 

Skoro nie w SQL to gdzie mam to wpisać ? Domyślałem się, że miejsce jest nieodpowiednie, ale nie wiedziałem gdzie w takim razie należy go umieścić.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Super. Wiem już w takim razie w czym jest problem. Czy teraz mogę otrzymać odpowiedź jak go rozwiązać ?

 

Skoro nie w SQL to gdzie mam to wpisać ? Domyślałem się, że miejsce jest nieodpowiednie, ale nie wiedziałem gdzie w takim razie należy go umieścić.

Na razie nie wiadomo czy w ogóle musisz to wpisywać. Przede wszystkim zmień stronę kodową swojej witryny z iso-8859-2 na utf-8, skoro dane z bazy będziesz wyciągać w utf-ie. Przekoduj źródła i zmień deklarację - w headerze strony masz:

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-2' />

Musisz zmienić to na:

<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />

Po tym sprawdź czy dalej są krzaki. Jeśli tak to, poproś admina tego hostingu żeby ci przekodował tego dumpa iconvem i zaimportował bazę z poziomu konsoli mysql-a, bo to jest minuta roboty. Jak nie będzie potrafił albo będzie chciał jakąś chorą kasę to lepiej trzymaj się z daleka od takiej firmy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Skoro nie w SQL to gdzie mam to wpisać ? Domyślałem się, że miejsce jest nieodpowiednie, ale nie wiedziałem gdzie w takim razie należy go umieścić.

Najlepiej w formatce zlecenia jakiejś firmy/osoby zajmującej się tym na codzień.

Bo sorry - ale nie mogę pojąć, jak ci się cokolwiek działającego postawić udało, skoro nawet nie potrafisz użyć perfidnego gotowca, gdzie sama składnia może wskazywać na to, że to, co napisałeś, to nic innego, jak SKRYPT php, który musisz umieścić w pliku pod nazwą jakas.php i potem RAZ go wywołać z przeglądarki.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

eazu.pl - jeden z pierwszych wpisów.

druga opcja bigdump i poprawne ustawienie kodowania w imporcie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×