Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z bazy czy skryptem
Domin
post 20.12.2005, 01:33:19
Post #1





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 17.11.2004
Skąd: Warszawa

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


Cześć. Mam problem, polegajacy na tym, iż na CMS-ie własnej produkcji nie mogę zapisywać do bazy danych polskich znaków takich jak: ł,ą,ż, itp. Tylko zadziwiajace jest to że ten sam skrypt na serwerze innej firmy działa dobrze. Przez bazę danych (phpmyAdmin) mogę zapisać polskie znaki, ale już przez mój skrypt nie, gdyż wywala że zapisano, ale zamiast polskich znaków jest "?". Kodowanie strony oraz skryptu jest dobre, a nie działa jak powinien. Dodatkowo po jednokrotnym zrobieniu funkcji UPDATE danego rekordu nie można go już aktualizować. Co to moze być??

Czy problem moze polegać na funkcji "escape_data" któej uzywam do wyciągania i zapisywania danych z bazy.

Pomocy!!!


--------------------
Głupi wie wszystko, mądry uczy się całe życie.
Go to the top of the page
+Quote Post
SongoQ
post 20.12.2005, 04:01:25
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Sprawdz kodowanie w bazie. Bo chyba to bedzie przyczyna.


--------------------
Go to the top of the page
+Quote Post
NoiseMc
post 20.12.2005, 09:35:25
Post #3





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Jeżeli jest to MySQL 4.1+ to jeżeli domyślne kodowanie bazy to Latin2, a strona jest w ISO-8859-2 to wszystko powinno być OK. Jeżeli cokolwiek jest inaczej niz powyżej za każdym wywołaniem skryptu po inicjalizacji połączenia z bazą powinieneś wykonywać następujące polecenia w bazie (w tym przypadku ustawienie kodowania na utf8, jeżeli używasz ISO-8859-2 to zamiast utf8 wpisujesz tam latin2) :

Przykład dla utf8
  1. SET NAMES 'utf8'
  2. SET CHARACTER SET utf8
  3. SET SESSION collation_connection ='utf8_bin'


Musisz też pamiętać aby w HTML - u w sekcji Meta wpisać odpowiednie kodowanie oraz wysłać do przeglądarki odpowiednie nagłowki.
Przykład dla utf-8:
  1. <?php
  2. header ( 'Content-Type: text/html; charset=utf-8' );
  3.  
  4. ?>


Pamiętaj również, aby w bazie ustawić odpowiedni system porównywania znaków (dla utf na przykład utf8_general_ci)


--------------------
Go to the top of the page
+Quote Post
Domin
post 20.12.2005, 17:23:11
Post #4





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 17.11.2004
Skąd: Warszawa

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


To jest coś z kodowaniem w tym moims krypcie, ponieważ sprawdzwiłem czy będzie dobrze jeśli do bazy danych wprowadzę prawidłowe dane ręcznie. I tak zrobiłem wprowadziłem ręcznie, uruchomiłem panela dministracyjny i tutaj pojawia się pytanie dlaczego zmiast poslich znaków są ? skoro w bazie danych jest wszystko dobrze, a kodowanie strony jest iso-8859-2.


--------------------
Głupi wie wszystko, mądry uczy się całe życie.
Go to the top of the page
+Quote Post
mike
post 20.12.2005, 17:37:35
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Na kodowanie skladają się dwie rzeczy:
1. Usawione kodowanie w <meta>
2. Kodowanie w jakim zapisano plik.
Go to the top of the page
+Quote Post
kurt
post 28.03.2006, 20:59:53
Post #6





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

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


Brawo NoiseMc !
Bardzo dobry post. Męczyłem się z kodowaniem dwa dni i dopiero po przeczytaniu Twojego posta otwozryły mi się oczy, thx. Jednak nie zgodzę się co do domyślnego kodowania Mysql 4.1+ , według mnie jest to latin1.

Ten post edytował kurt 28.03.2006, 21:02:52
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: 26.06.2025 - 01:28