Kodowanie bazy danych.

Jeżeli po wyświetleniu informacji pobranych z bazy pojawiają się błędy w miejscu występowania polskich liter (dziwne znaki) to najczęstszym problemem jest nawiązywanie połączenia w innym kodowaniu niż to jakie jest zdefiniowane na serwerze MySQL (np. klient Latin1, serwer: cp1250).

W celu pozbycia się problemu w pierwszej kolejności należy sprawdzić kodowanie naszej bazy. W tym celu najlepiej wykorzystać phpMyAdmin"a.

Jeżeli już poznaliśmy kodowanie musimy wykonać odpowiednie zapytanie do bazy za pomocą instrukcji SQL: SET NAMES

Korzystamy z rozszerzenia mysql
Po funkcji mysql_connect wywołujemy mysql_query, podajemy nazwę interesującego nas kodowania:

$polaczenie = mysql_connect("host", "login", "hasło") or die("Błąd logowania!"); mysql_query("SET NAMES "X"")

X - tutaj wpisujemy odpowiednie kodowanie, np.: utf8

Rozszerzenie mysqli
Zmianę kodowania wykonujemy w następujący sposób:

$polaczenie = @new mysqli("host", "login", "haslo", "nazwa bazy danych"); if (mysqli_connect_errno() === 0) {
         $polaczenie -> query("SET NAMES "X"");
}

X - tutaj wpisujemy odpowiednie kodowanie, np.: utf8
Lista obslugiwanych kodów dostępna jest na stronie mysql.com

Add Feedback