Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL] Zmiana serwera i przenoszenie bazy danych, problem z kodowaniem
in5ane
post 8.03.2009, 23:42:51
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Witam, przenosiłem stronę z jednego serwera na drugi i mam problem z kodowaniem.

Ustawienia kodowania serwera 1:
System porównań dla połączenia MySQL: utf8_general_ci
Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
Metoda porównywania napisów: utf8_general_ci
Kodowanie strony: utf-8 (zapisane przy pomocy notepad, utf-8 bez bom)

Ustawienia kodowania serwera 2:
System porównań dla połączenia MySQL: utf8_general_ci
Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
Metoda porównywania napisów: utf8_general_ci
Kodowanie strony: utf-8 (zapisane przy pomocy notepad, utf-8 bez bom)

Ustawienia serwera 1 == Ustawienia serwera 2




Na tym obrazku przedstawione są litery: ę ó ą ś ł ż ź ć ń.
Pierwszy rządek to litery, które były zakodowane w pierwszej bazie i w drugiej tuż po imporcie, niestety, ale na stronie wyskoczyły krzaki po tym imporcie, mimo iż litery w bazie wyglądają tak samo. Drugi rządek to zaś litery w drugiej bazie po dodaniu ze strony. Czyli z tego co zauważyłem, oba serwery (bazy) mają taką samą konfigurację, ale inaczej zapisują znaki, a więc mam teraz zrobić, aby mi strona nie krzaczyła?

Proszę o pomoc.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
RafaelX
post 9.03.2009, 00:31:37
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

Ostrzeżenie: (0%)
-----


a podczas exportu ustawiłes kodowanie na utf-8 ?
Go to the top of the page
+Quote Post
in5ane
post 9.03.2009, 00:38:16
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Tak, na 100%.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
Prym
post 9.03.2009, 00:42:35
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


Miałem kiedyś taki przypadek na takim słabszym hostingu. ogólnie za nic nie mogłem wyeksportować poprawnie danych do drugiej bazy. rozwiązaniem okazało się przeniesienie danych łopatologicznie smile.gif czyli export z phpmyadmin bez zapisu do pliku (eksporcik wyświetli się w textboxie) w 2 zakładce odpaliłem 2 baze i wkleiłem po kawałku (tabela po tabeli) baze 1 smile.gif

jakbym to miał robić często pewnie coś bym kombinował ale jednorazowo - po co się męczyć
Go to the top of the page
+Quote Post
in5ane
post 9.03.2009, 00:50:29
Post #5





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Nic nie daje, próbowałem. Tu chodzi o to, że one w tej drugiej bazie powinny być zakodowane tymi innymi znaczkami.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
Prym
post 9.03.2009, 01:05:10
Post #6





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


hmm a te krzaczki to ci się pojawiają fizycznie w tabeli bazy? czy po wyciągnięciu na strone?

bo jeśli na stronie się krzaczy a w bazie masz ok to może nie użyłeś po połączeniu z bazą ustawienia kodowania:
$query("SET NAMES UTF8"); // takie zapytanie ustawiające sposób kodowania połączenia.

jak nie to przykro mi ale nie miałem innych kłopotów z kodowaniem smile.gif jak narazie

Ten post edytował Prym 9.03.2009, 01:12:30
Go to the top of the page
+Quote Post
_Martin_
post 9.03.2009, 01:16:12
Post #7





Grupa: Zarejestrowani
Postów: 352
Pomógł: 9
Dołączył: 16.09.2005
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


Również miałem taki problem sprawdź jakie masz kodowanie w bazie w tabelach np tabela: "userzy" w strukturze.
Potem sprawdź czy stronie masz kodowanie ustawione te same jak w bazie danych bo to zawsze można pomylić lub przeoczyć!


--------------------
Go to the top of the page
+Quote Post
in5ane
post 9.03.2009, 01:49:51
Post #8





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


@Prym: no te krzaki na stronie, a w tabeli podałem jak jest. Pierwszy rządek na obrazku to tak było w starej tabeli i było dobrze, a w tej nowej tabeli jest tak i jest źle. W tej nowej tabeli dobrze na stronie wyświetla się, jak polskie znaki są jak te w drugim rządku.

@_Martin_: no to jest właśnie metoda porównywania napisów i jest utf-8.

@edit: $query = mysql_query ("SET NAMES UTF8"); nic nie pomogło.

@edit2: a może jest jakieś replace dla MySQL, powiedzmy zamieniam znaki z pierwszego rzędu na znak z drugiej rzędu (we wszystkich rekordach z całej bazy)? (bo jak zamieniłem sobie jeden znak to działał, więc jak to zrobić ze wszystkim za jednym razem?)

Jeżeli ktoś wie jak porobić te replace, to proszę o pomoc. Bo z tym chyba najszybciej zrobię, niż z myśleniem, dlaczego jest tak przy tym exporcie/imporcie.

Jednak nie jestem pewny, czy ta zamiana znaczków na 100% zadziała, więc jeżeli ktoś ma pomysł na dobry export/import, to proszę o pomoc.

Ten post edytował in5ane 9.03.2009, 01:33:00


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
_Martin_
post 9.03.2009, 04:08:26
Post #9





Grupa: Zarejestrowani
Postów: 352
Pomógł: 9
Dołączył: 16.09.2005
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


Cięzka sprawa ale po co "replace"? przecież to musi hulać i bez tego!
A Może po prostu na starym serwerze miałeś php4 a na nowym php5 ? albo odwrotnie smile.gif
P.S Robiłeś kopie w postaci .SQL czy .gz questionmark.gif


--------------------
Go to the top of the page
+Quote Post
in5ane
post 9.03.2009, 16:22:27
Post #10





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Na serwerze numer jeden jest PHP 4. JEDNAK JEST WERSJA 5 (TAK SIĘ WYŚWIETLIŁO W IMPORCIE DANYCH Z BAZY)
Na serwerze numer dwa jest PHP 5.

Kopia była w postaci SQL.

P.S.: W sumie masz rację, że nie ma co się bawić w replace. Ale co dalej z tym exportem/importem?


@edit:
Zerknąłem, ze na pierwszym serwerze w bazie rozszerzenie php to mysqli, a na drugim serwerze w bazie to mysql.

Zaś wersja serwera w pierwszym to 5.0.67, a w drugim to 4.1.23-log. Wersje protokołu są takie same (10). (to są dane z phpMyAdmin)

Zerknąłem na na metodę porównywania napisów dla samej bazy (nie tabele czy rekordy czy cała baza danych) to jest latin1_swedish_ci (i to jest i na jednym serwerze i na drugim). Po zmianie na drugim serwerze na utf-8 nic nie dało, więc wróciłem do tego latin1 jak było.

Strona jest dostępna na razie pod adresem: http://dancepiortrkow.boo.pl (to już na nowym serwerze).


Serwer 1:
-- phpMyAdmin SQL Dump
-- version 3.1.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 09 Mar 2009, 07:40
-- Wersja serwera: 5.0.67
-- Wersja PHP: 5.2.9

Serwer 2:
-- phpMyAdmin SQL Dump
-- version sql.boo.pl
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 09 Mar 2009, 07:39
-- Wersja serwera: 4.1.23
-- Wersja PHP: 5.2.5

Jeżeli ktoś ma pomysł, to proszę o pomoc.

Ten post edytował in5ane 9.03.2009, 07:41:20


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
erix
post 9.03.2009, 17:47:35
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Strona jest dostępna na razie pod adresem: http://dancepiortrkow.boo.pl (to już na nowym serwerze).

IMHO najgorszy hosting, limitują, co się tylko da. winksmiley.jpg Ale to tak przy okazji.

Cytat
@edit: $query = mysql_query ("SET NAMES UTF8"); nic nie pomogło.

Po ściągnięciu backupu na HDD, otwórz jakimś notatnikiem obsługującym UTF i dopisz samo zapytanie na początku dumpa.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
in5ane
post 9.03.2009, 20:20:09
Post #12





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Dzięki wszystkim, poradziłem sobie.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
Orkan
post 9.03.2009, 21:25:46
Post #13





Grupa: Zarejestrowani
Postów: 55
Pomógł: 4
Dołączył: 19.05.2003
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat(in5ane @ 9.03.2009, 22:20:09 ) *
Dzięki wszystkim, poradziłem sobie.


to fajnie i naprawde sie ciesze w imieniu wszystkich przyszlych forumowiczow z tym samym problemem sciana.gif

--
Czy Twój komentarz jest odpowiedzią na temat? Nie. Masz coś do powiedzenia autorowi wątku, co nie ma nic wspólnego z problemem - użyj PW. Po to jest.

erix


--------------------
The fastest app with PHP: <?php die('Hello World'); ?>
Go to the top of the page
+Quote Post
Rude Dude
post 11.12.2009, 23:46:25
Post #14





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 23.07.2007

Ostrzeżenie: (0%)
-----


Chciałbym dorzucić swoje 3 grosze. Męczyłem się właśnie z tym kodowaniem i w wyniku połączenia informacji z dwóch różnych for internetowych znalazłem takie o to rozwiązanie.

  1. mysql_query('SET character_set_connection=utf8');
  2. mysql_query('SET character_set_client=latin2_general_ci');
  3. mysql_query('SET character_set_results=latin2_general_ci');
  4. mysql_query("set names latin2;");

Wstawiamy ten kod w naszym configu.
Kodowanie w bazie to utf-8, a kodowanie na stronie to np. w moim przypadku iso-8859-2. Dodanie tych linijek spowodowało, że krzaczki znikły. Mam nadzieję że się komuś to przyda smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 13:01