Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z "polskimi literkami"
mike22
post 4.08.2006, 11:02:20
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.08.2006

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


Witam,

Jestem zupełnie nowy w php i MySQL i mam taki "mały" problemik z "polskimi" literkami.
Podczas próby zapisu danych z formularza pojawia się błąd:
Data too long for column 'title' at row 1

Kolumna nie ma żadnego znaczenia. Wystarczy, że we wprowadzonym tekście pojawi się "polska" literka.

Na moim środowisku wszystko działa normalnie. Po wrzuceniu na serwer przestaje działać (na serwerze mam prawa tylko do ftp i to w ograniczonym zakresie) .

Przypuszczam, że występuje problem ze stroną kodową MySQL. Tyle, że administrator serwera nie zna się (lub przynajmniej tak twierdzi) na MySQL i php, a instalację zrobił defaultową.

Strasznie mi się spieszy. Czy ktoś mógłby mi pomóc?

Z góry bardzo dziękuję!!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
mariuszn3
post 4.08.2006, 12:26:01
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Czy serwer MySQL wie w jakim kodowaniu mu dane przesyłasz (zapytanie SET NAMES) ?
Jakie kodowanie masz ustawione na tabeli?
Go to the top of the page
+Quote Post
mike22
post 4.08.2006, 15:01:52
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.08.2006

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


Próbowałem na swoim stanowisku lokalnym. Nie ma znaczenia jak ustawię kodowanie w bazie - wszystko działa.
Może problem w tym, że ja mam MySQL 4.1 a na serwerze jest 5.0?
A może problem leży gdzieś w konfiguracji php na serwerze (przychodzą mi do głowy problemy z łączeniem ciągów znaków przy polskich literkach)?
Ratujcie...... :-)
Go to the top of the page
+Quote Post
mariuszn3
post 4.08.2006, 15:09:57
Post #4





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Cytat(mike22 @ 4.08.2006, 15:01 ) *
Próbowałem na swoim stanowisku lokalnym. Nie ma znaczenia jak ustawię kodowanie w bazie - wszystko działa.
Może problem w tym, że ja mam MySQL 4.1 a na serwerze jest 5.0?

Co to znaczy próbowałem na stanowisku lokalnym.. (w konsoli, na jakim systemie?) Co to znaczy wszystko działa.. polskie literki wyświetlają się poprawnie?
Mówiąc,że na serwerze jest 5.0 masz jak rozumiem na myśli wersję php?
Czy wysyłasz do MySQL zapytanie informujące o tym w jakim kodowaniu dane będzie otrzymywać?
Był tu jeden taki temat dokładnie z Twoim problemem, w którym wszystko było dokładnie wyjaśnione, poszperaj i poczytaj.. bo nie ma sensu drugi raz tego samego wklepywać.

Ten post edytował mariuszn3 4.08.2006, 15:10:09
Go to the top of the page
+Quote Post
mike22
post 4.08.2006, 17:24:49
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.08.2006

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


Cytat(mariuszn3 @ 4.08.2006, 16:09 ) *
Co to znaczy próbowałem na stanowisku lokalnym.. (w konsoli, na jakim systemie?) Co to znaczy wszystko działa.. polskie literki wyświetlają się poprawnie?
Mówiąc,że na serwerze jest 5.0 masz jak rozumiem na myśli wersję php?
Czy wysyłasz do MySQL zapytanie informujące o tym w jakim kodowaniu dane będzie otrzymywać?
Był tu jeden taki temat dokładnie z Twoim problemem, w którym wszystko było dokładnie wyjaśnione, poszperaj i poczytaj.. bo nie ma sensu drugi raz tego samego wklepywać.



Założenia:
skrypty php przygotowuję na Windows XP, MySQL 4.1 i php 5
Witryna ma działać na Windows 2003 Server, MySQL 5.0 i php 5

Problem:
Nie chodzi o to, że znaki się źle wyświetlają, tylko o to, że "polskich" znaków nie potrafię wprowadzić INSERT-em do bazy danych MySQL, bo pojawia się błąd "data too long".
Go to the top of the page
+Quote Post
mariuszn3
post 4.08.2006, 17:29:14
Post #6





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Upewnij się, że przed wysyłaniem danych przesyłasz na serwer MySQL informację o kodowaniu znaków w jakim one będą przesyłane.
Błąd najprawdopodobniej wynika z tego.. że MySQL zakłada że pracujesz w jakimś tam kodowaniu (przyjmuje kodowanie nie zgodne z faktycznym), próbuje to przekonwertować na domyślne kodowanie tabeli i tu się wykrzacza.. po prostu binarnie Twoje kodowanie nie odpowiada temu, które MySQL przyjmuje.. Wysłanie SET NAMES powinno rozwiązać problem... tak ja to rozumiem
Go to the top of the page
+Quote Post
mike22
post 4.08.2006, 18:28:38
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.08.2006

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


Masz rację! Chylę czoła!!!

W swojej naiwności sądziłem, że wykrzaczanie na głupim konwertowaniu raczej nie wchodzi w grę.
Zwłaszcza, że strony mam na ISO 8859-2 a SHOW CREATE DATABASE ... pokazuje na serwerze
CREATE DATABASE `auditors` /*!40100 DEFAULT CHARACTER SET latin2 */

Na swoim komputerze mam kompletną niezgodność stron kodowych i jest ok. Na serwerze teoretycznie było zgodne i się sypało!

Dzięki, dzięki i jeszcze raz dzięki!
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: 14.08.2025 - 07:26