![]() |
![]() |
![]()
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ę!! |
|
|
![]() |
![]()
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? |
|
|
![]()
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...... :-) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.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? 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 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (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ć. 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". |
|
|
![]()
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 |
|
|
![]()
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! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:26 |