Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Data truncated dla polskich znakow
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam,


Zdefiniowalem pole enum('dobry', 'zły') w bazie danych, kiedy wprowadzam wartosc "dobry" skrypt działa poprawnie, gdy wprowadzam wartosc "zły" wyskakuje błąd

Cytat
Data truncated for column 'align' at row 1


Wiec jedynym wytłumaczniem jest to ze spowodowane jest to przez polskie znaki.
Szukam rozwiazania juz od 3h na tym forum, w googlach, na zagranicznych forach i nic......
Moze ktos w koncu pomoc questionmark.gif

Dodam ze charset dla bazy danych i tabeli jest utf8 collation utf8_polish_ci wiec teoretycznie powinno wszystko działać.....

Probowalem tez uzyc polecenia IGNORE ale wtedy wogole komorka tebali 'align' nie jest uzupełniana......
Dodałem tez tag meta :
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />;

bez uzycia polecenia IGNORE ale ten sam błąd....
Ludzie pomozcie bo szewskiej pasji dostaje exclamation.gif sciana.gif
Darti
Spróbuj zaraz po połączeniu z bazą wysłać zapytanie mysql_query('SET NAMES utf8');
Wolfie
Zadziałało ale zamiast polskiej literki "ł" jest "?".....

Dzieki Ci ze sie zainteresowales tym tematem bo szperam juz od 5h....


No i tez jest błąd w wyswietlaniu koloru bo uzywam do tego takiej konstrukcji :

  1. <?php
  2. $table = str_replace('zły', '<font color="red">zły</font>',$table);
  3. $table = str_replace('dobry', '<font color="darkgreen">dobry</font>', $table);
  4. ?>


Dla "dobry" wszystko gra i kolor sie zmienia , dla "zły" kolor pozostaje czarny i pojawia sie wspomniany "?"

No ale to pomniejszy problem, najwazniejsze zeby poprawnie wyswietlalo sie "ł"

W phpMyAdminie komorka tabeli wyswietla sie prawidłowo z polska literka.....
No i w php.ini mam ustawione takie dane :
Cytat
; PHP's built-in default is text/html
default_mimetype = "text/html"
default_charset = "utf-8"
character_set_server = utf8


To tak dla jasnosci smile.gif , wiec jak teraz poprawic "?" na prawidłową literke ?
Darti
sprawdź, czy przeglądarka faktycznie wyświetla w utf-8 i czy wysyłając formularz wysyłasz go metodą post
Wolfie
Domyślny zestaw znakow dla firefox utf-8

formularz :

  1. <?php
  2. <form action="char_transact.php" name="theform" method="post">
  3. ?>


Odbieranie zmiennych w kolejnym skrypcie :

  1. <?php
  2. foreach ($_POST as $key => $value) {
  3.  $$key = $value;
  4. }
  5. ?>


Więc powyższe warunki sa spelnione, zrobilem nowy wpis postaci do bazy - mimo to "?" wystepuje....
Dodam jeszcze ze pisze w notepad++ i skrypty sa zakodowane w utf-8 bez BOM...

Ktos ma jakies pomysły ?

sciana.gif

Moze jeszcze dodam ze natej samej stronie mam wartosci wczytywane z innej tabeli sql i tam polskie znaki w tym takze "ł" tez sie wyswietla prawidlowo, gdzie moze byc przyczyna w takim wypadku ? w str_replace ?
Darti
Metoda porównywania napisów dla kolumny align (tak dla pewności) - utf8
Więcej nic nie widzę ...
Wolfie
no niestety jest ustawione na utf8, kolumna align rowniez utf8 collation utf8_polish_ci worriedsmiley.gif

Zreszta tak jak wspominalem, w MySQL Administratorze oraz w phpMyAdminie wyswietla sie poprawnie "zły"
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.