kategoria: PHP
[#1] Zmienne w PHPMyAdmin
Jak można zmienić warości tych zmiennych widocznych na zrzucie ekranu z linka poniżej? Chodzi mi konkretnie o te wszystkie dziwne kodowania znaków, bo mi krzaki wychodzą po odczycie z bazy danych. Zmieniłbym wszystko na UTF-8.
http://rtea.c0.pl/obrazki/zrzut_ekranu.png
[#2] Re: Zmienne w PHPMyAdmin

@R-Tea, post #1

w połączeniu z db daj
mysql_query ("SET NAMES utf8");

jak nie pomoże to znaczy, że dane masz zapisane w latin i trzeba by konwertnąć db, albo robić konwersję "w locie" via iconv, albo mb_convert_encoding
[#3] Re: Zmienne w PHPMyAdmin

@Kilos, post #2

Mam ten wpis w kodzie php zaraz po połączeniu z bazą. Dlatego, przypuszczam, na tym skrinszocie widać, że dla bieżącej sesji jest ustawione kodowanie utf8, ale na stałe (w konfiguracji) są te, które tam widać.
A danych w bazie nie mam żadnych :)
Już wyjaśniam. Mam bazę i kilka pustych tabel w niej. Przez PHPMyAdmin wpisuję "z palca" jakiś rekord do jednej z tabel. W widoku PHPMyAdmin wszystko pięknie wygląda. Są wszystkie polskie ogonki itp.
Ale jak odczytam i wyświetnę ten rekord moim własnym skryptem PHP, to mam znaki zapytania zamiast polskich haczyków.
[#4] Re: Zmienne w PHPMyAdmin

@R-Tea, post #3

te globalne zmienne nie rzutują, liczą się te dla konkretnej sesji, w tym przypadku dotyczą połączenia skryptu pma z db, coś nie halo masz w połączeniu Twojego klienta (skryptu PHP) z db, bo jeśli kodowanie dla konkretnej bazy masz utf8, porównywanie masz powiedzmy utf8_unicode_ci, to samo masz ustawione dla konkretnej tabeli i dla połączenia w skrypcie masz SET NAMES utf8 to jeszcze możesz dodać SET CHARACTER_SET utf8_unicode_ci i nie ma bata żeby było źle. Znaki zapytania są typowe dla sytuacji kiedy klient (skrypt PHP) nawiązuje połączenie z bazą w innym kodowaniu znaków.
[#5] Re: Zmienne w PHPMyAdmin

@R-Tea, post #1

mozesz robic konwersje w locie w T-SQLu wyglada to tak

SELECT COLLATE Polish_CI_AS FROM tabela;

mozesz sprobowac ustawic na poczatku zmienne srodowiskowa

SET NAMES utf8 collate utf8_polish_ci
lub tez
SET COLLATION_CONNECTION = utf8_polish_ci

Strony kodowej nie mozna zmieniac (jest to nadwyraz niebezpieczne) po instalacji dla calej instancji SQLa

Ostatnia aktualizacja: 19.06.2012 10:31:56 przez HOŁDYS
[#6] Re: Zmienne w PHPMyAdmin

@HOŁDYS, post #5

@ HOŁDYS
Co lepiej użyć, utf8_unicode_ci czy utf8_polish_ci ?

@ Kilos
SET CHARACTER_SET utf8_unicode_ci

Chyba powinno być bez tego podkreślnika między CHARACTER i SET.

Ostatnia aktualizacja: 19.06.2012 20:23:02 przez R-Tea
[#7] Re: Zmienne w PHPMyAdmin

@R-Tea, post #6

wszystko zalezy od contextu wywolania zapytania
ja w ms sql 2008 uzywam bez problemowow utf8_polish_ci po stronie C# (inna strona kodowa warstwy aplikacji) pozatym chyba byly bledy sortowania order by przy unicode.
jesli masz sql server mozesz wylistowac dostepne coallate poprzez funkcje sqlOSa ..
SELECT * FROM fn_helpcollations() where name like '%polish%'

Ostatnia aktualizacja: 19.06.2012 20:29:59 przez HOŁDYS
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem