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 obsługiwanych kodów dostępna jest na stronie
mysql.com