Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> LIKE case-insensitive, odwieczne poblemy z kodowaniem
soomal
post
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

Posty w temacie
- soomal   LIKE case-insensitive   2.07.2009, 00:07:14
- - erix   Zrzut masz na pewno w latin2? SET NAMES na począt...   2.07.2009, 10:07:06


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:52