Я пытаюсь импортировать данные в SQL из CSV в PHP My Admin, поэтому это может быть проблема PHP My Admin. У меня проблема в том, что некоторые столбцы используют специальные символы, например:
"Adán, Antonio"
Заканчивается как "Ad".
Структура столбца следующая:
CREATE TABLE IF NOT EXISTS `players` (
`player_name` varchar(255) COLLATE utf8 NOT NULL,
`player_nation` varchar(255) CHARACTER SET utf8 NOT NULL,
`player_club` varchar(255) CHARACTER SET utf8 NOT NULL,
`player_position` varchar(255) CHARACTER SET utf8 NOT NULL,
`player_age` tinyint(2) NOT NULL,
`player_dob` varchar(32) CHARACTER SET utf8 NOT NULL,
`player_based` varchar(255) CHARACTER SET utf8 NOT NULL,
`player_id` int(10) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8;
Я предполагаю, что это как-то связано с набором символов, но mysql.com просто предлагает изменить таблицу на набор символов utf8, который уже есть.
Есть идеи, как еще я могу предотвратить это?
UPDATE
Вставка в базу данных - это хорошо, так что я предполагаю, что это не связано с моей структурой таблицы. Похоже, что это конкретно связано с импортом из CSV.
Это запрос загрузки данных, сгенерированный PHP My Admin
LOAD DATA LOCAL INFILE 'C:\\Windows\\Temp\\php21E4.tmp' INTO TABLE `players` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'.
РЕШЕНИЕ
Я обнаружил проблему. Мой CSV был закодирован с помощью кодировки Западной Европы. После недолгой разборки конвертирования в UTF8 он импортировался просто отлично. Совсем не проблема SQL.