pmpMyAdmin - SQL import tabuľky má problém s diakritikou
Mám tento SQL príkaz:
CREATE TABLE `sekcie` (
`id` int(11) NOT NULL auto_increment,
`nazov` varchar(40) collate utf8_slovak_ci NOT NULL default '',
`hlavna` varchar(40) collate utf8_slovak_ci NOT NULL default '',
`hlavna2` varchar(40) collate utf8_slovak_ci NOT NULL default '',
`por` int(11) NOT NULL default '0',
`page` longtext collate utf8_slovak_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci AUTO_INCREMENT=163 ;
--
-- Sťahujem dáta pre tabuľku `sekcie`
--
INSERT INTO `sekcie` VALUES (155, 'Hydraulické šróbenie', 'nic', 'nic', 3, '');
INSERT INTO `sekcie` VALUES (156, 'Príchytky na trubky', 'nic', 'nic', 4, '');
INSERT INTO `sekcie` VALUES (157, 'Rýchlospojky', 'nic', 'nic', 5, '');
INSERT INTO `sekcie` VALUES (158, 'Gu3ové ventily', 'nic', 'nic', 6, '');
INSERT INTO `sekcie` VALUES (159, 'Manometre', 'nic', 'nic', 7, '');
INSERT INTO `sekcie` VALUES (160, 'Pneumatika', 'nic', 'nic', 8, '');
INSERT INTO `sekcie` VALUES (154, 'Priemyselné hadice', 'nic', 'nic', 2, '');
INSERT INTO `sekcie` VALUES (153, 'Hydraulické hadice', 'nic', 'nic', 1, '');
INSERT INTO `sekcie` VALUES (161, 'úroveo 2', 'Hydraulické hadice', 'nic', 0, '');
INSERT INTO `sekcie` VALUES (162, 'úroveo 3', 'Hydraulické hadice', 'úroveo 2', 0, '');
Odovzdávam ho do phpMyAdmin do databázy. Po prezretí obsahu tabuľky po vykonaní príkazu zisťujem, že texty sú od diakritiky odseknuté. Ťažko vysvetliť, takto to vyzerá po exporte, čiže vlastne toto sa mi vytvorí v tabuľke (jedná sa o problém s diakritikou zrejme):
CREATE TABLE `sekcie` (
`id` int(11) NOT NULL auto_increment,
`nazov` varchar(40) collate utf8_slovak_ci NOT NULL default '',
`hlavna` varchar(40) collate utf8_slovak_ci NOT NULL default '',
`hlavna2` varchar(40) collate utf8_slovak_ci NOT NULL default '',
`por` int(11) NOT NULL default '0',
`page` longtext collate utf8_slovak_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci AUTO_INCREMENT=163 ;
--
-- Sťahujem dáta pre tabuľku `sekcie`
--
INSERT INTO `sekcie` VALUES (155, 'Hydraulick', 'nic', 'nic', 3, '');
INSERT INTO `sekcie` VALUES (156, 'Pr', 'nic', 'nic', 4, '');
INSERT INTO `sekcie` VALUES (157, 'R', 'nic', 'nic', 5, '');
INSERT INTO `sekcie` VALUES (158, 'Gu3ov', 'nic', 'nic', 6, '');
INSERT INTO `sekcie` VALUES (159, 'Manometre', 'nic', 'nic', 7, '');
INSERT INTO `sekcie` VALUES (160, 'Pneumatika', 'nic', 'nic', 8, '');
INSERT INTO `sekcie` VALUES (154, 'Priemyseln', 'nic', 'nic', 2, '');
INSERT INTO `sekcie` VALUES (153, 'Hydraulick', 'nic', 'nic', 1, '');
INSERT INTO `sekcie` VALUES (161, '', 'Hydraulick', 'nic', 0, '');
INSERT INTO `sekcie` VALUES (162, '', 'Hydraulick', '', 0, '');
Vie niekto poradiť, ako to importovať správne?
Neviem aké údaje mám poskytnúť, opýtajte sa, napíšem odpoveď.
co vím, tak si musíš dát pozor na to, v jakém kódování ti jede MySQL a jak ti ho tam předá phpAdmin (tj. jak je nastaveno webové rozhraní).
Pokud máš přístup přímo k SQL, zkus to naimportovat následovně:
mysql --default-character-set=binary <databáze> <soubor.sql
edit: rozhodně ale nejsem MySQL guru
Nepíšeš nic o tom, v jakém kódování je ten SQL příkaz a jaké kódování má nastavena MySQL databáze.
A jak ten SQL dotaz vkládáš do phpMyAdmina? Načtením ze souboru nebo vložením (Ctrl+V) do textarea pro SQL dotaz? Zkus oba způsoby!
Všade mám nastavené utf8-slovak-ci a tam, kde nie je možnosť zadať aj jazyk, tak len utf8.
Problém bol v tom, že som to dal vykonať ako texťák. Vložil som to teraz pomocou Ctrl+V a je to dobre. Ďakujem.