Databáze verzia MySQL 5.7 a čeština
Databáza na servery s verziou MySQL 5.7 sa zriaďuje bez nastavenej defaultnej znakovej sady (tzn. Latin1).
Pokiaľ je to pri Vašej databázy inak, odporúčame nastaviť znakovú sadu UTF-8 a české triedenie, nerozlišující veľkosť písmen. To vykoná napríklad cez phpMyAdmin SQL príkazom:
ALTER DATABASE nazev_databaze
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_czech_ci;
Pokiaľ potom vytvoríme nasledujúcu tabulku s dvomi stĺpcami 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;
nie je problém do nej vkládať české znaky a korektne funguje aj triedenie znakov jako je "ch".
Pri ďaľšom prezkúmaní manuálových stránok zistíte, že znaková sada predávaná serverom sa dá zmeniť prostredníctvom SET NAMES - viz https://dev.mysql.com/doc/refman/5.7/en/set-names.html
Pre výstup v patričnom kódovaní (napr. windows-1250) na webovú prezentáciu stačí zadať po obvyklém pripojení príkaz MySQL_Query("SET NAMES 'cp1250'");
Takto by mohla vyzerať časť kódu pre pripojení k databáze:
$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