Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> LIKE case-insensitive, odwieczne poblemy z kodowaniem
soomal
post 2.07.2009, 00:07:14
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 4.03.2007

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


LIKE wywołany w bazie wyszukuje nazwy dla "%Żył%", nie znajduje dla "%żył".
Problem pewnie leży w tym, że znaki są zapisane w bazie w ISO-8859-2, a kodowanie (metoda porównywania napisów w phpMyAdmin) ustawione na latin1_swedish_ci, przez to engine bazy nie potrafi dobrze przetłumaczyć małych liter na duże, dużych na małe więc jest czuły na wielkość znaku.
Zmiany charsetu dla bazy nie pomogła (latin2_general_ci), dla tabel też. Zmiana charsetu dla poszczególnych kolumn wywołuje błąd:
http://forum.php.pl/lofiversion/index.php/t25622.html , który jest bugiem mysql nienaprawionym od 2004. Dodatkowo konwersja na latin2 a potem z powrotem na latin1 skopała mi kodowanie (zamiast znaków polskich były '?').

Więc zrzuciłem dumpa i wszędzie gdzie było latin1 ustawiłem latin2, ale po dodaniu takiej bazy okazało się, że występuje znów błąd (illegal mix of collations latin1, latin2). Okazało się (po show variables like "charset%"), ze character_set_server=latin1. Zmiana na latin2 nie pomogła.

Może ktoś już miał taki problem i potrafi poradzić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
erix
post 2.07.2009, 10:07:06
Post #2





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




Zrzut masz na pewno w latin2?

SET NAMES na początku użyłeś?


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

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

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: 24.07.2025 - 22:57