Portál technické podpory

Pokud zde nenajdete to, co jste hledali, neváhejte nás kontaktovat.
Potřebné informace pro vás rádi doplníme.

Databáze verze MySQL 5.7 a čeština

Databáze na serveru s verzí verze MySQL 5.7 se zřizují bez nastavené defaultní znakové sady (tzn. Latin1).

Pokud je to u Vaší databáze jinak, doporučujeme nastavit znakovou sadu UTF-8 a české třídění, nerozlišující velikost písmen. To provede např. přes phpMyAdmin SQL příkazem:

ALTER DATABASE nazev_databaze
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_czech_ci;

Pokud pak vytvořítme následující tabulku se dvěma sloupci ID a hodnota:

CREATE TABLE cz_test
(ID INT NOT NULL AUTO_INCREMENT ,
hodnota VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci, PRIMARY KEY (ID)
) TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci;

není problém do ní vkládat české znaky a korektně funguje i třídění znaků jako je "ch".

Při dalším prozkoumání manuálových stránek zjistíte, že znaková sada předávaná serverem se dá změnit prostřednictvím SET NAMES - viz https://dev.mysql.com/doc/refman/5.7/en/set-names.html

Pro výstup v patřičném kódování (např. windows-1250) na webovou prezentaci stačí zadat po obvyklém připojení příkaz MySQL_Query("SET NAMES 'cp1250'");

Takto by mohla vypadat část kódu pro připojení k databázi:

$link = MySQL_Connect("adresa_databazoveho_serveru", "nazev_uzivatele", "heslo")
or die("Nelze se připojit"); //připojení k serveru
MySQL_Select_DB("nazev_databaze") or die("Nelze vybrat databazi"); //výběr databáze
MySQL_Query("SET NAMES 'cp1250'"); //překóduje DB do windows-1250

// .....další příkazy a dotazy na databázi

MySQL_Close($link); //ukončení spojení

Manuálové stránky (Chapter 10. Character Set Support): https://dev.mysql.com/doc/refman/5.7/en/charset.html