Portál technickej podpory

Ak tu nenájdete to, čo ste hľadali, neváhajte nás kontaktovať.
Potrebné informácie pre vás radi doplníme.

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