2015-09-01 6 views
0

Я пытаюсь выполнить массовый импорт имен CSV в MYSQL, но во время процесса есть специальные символы, которые останавливают операцию.Как иметь mysql игнорировать специальный символ в именах

Персонаж по имени - Переса

Есть ли способ, чтобы MYSQL игнорировать это при загрузке? Мой следующий шаг - автоматизировать загрузку через веб-страницу, где клиент может просто загрузить CSV-файл и нажать submit, поэтому надеясь выработать эти глюки.

Я принял предложение панели и воссоздал мою таблицу как UTF8-умолчанию.

ОШИБКА 1366: Неправильное значение строки: «\ xE9rez» для столбца «acct_owner» в строке 1 SQL заявление:

Я попробовал это, и я все еще получаю ту же ошибку на этой специальный символ, а также в настоящее время для некоторых почему мой столбец с автоматическим инкрементом не увеличивается, он просто захватывает данные из столбца last_update, поэтому все сдвигается влево.

+1

Существует не хватает информации здесь. Какой запрос вы используете для массового импорта, какая кодировка используется файлом, что говорит mysql, когда он решает остановиться и т. Д.? – Eloims

+0

У вас есть какой-либо код, он останавливается или он вызывает ошибку, пожалуйста, предоставьте дополнительную информацию. – Naruto

+1

Это не должно останавливать импорт данных, а просто меняйте его, поскольку ваш столбец кажется latin1 int utf-8. –

ответ

0

Ну в случае, если вы хотите insert/load CSV данных с особым характером, вы можете попробовать, как этот

LOAD DATA INFILE 'file.csv' 
IGNORE INTO TABLE table 
CHARACTER SET UTF8 
FIELDS TERMINATED BY ';' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
0

Чтобы решить эту проблему, я в конечном итоге восстановление моих таблиц БД, я тогда пошел вперед и до представления моего ввода данных циклически через него с некоторым кодом для удаления символов, которые, как я знаю, вызывают у меня проблемы. Хотя, возможно, это был не самый лучший способ, который я нашел. Сначала у меня был цикл, который удалял любые символы, которые не были стандартными A-Z или 0-9, но я обнаружил, что это вызвало другие проблемы, которые мне нужно было видеть; и \ и даже/в некоторых моих подробностях. Поэтому я сосредоточился только на том, что, как мне известно, нарушает импорт в MYSQL.

Вот надрез кода я использовал:

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 

//Replace all the special characters to avoid any insert errors 
$data = preg_replace('/\'/', '', $data); 
$data = preg_replace('/é/', 'e', $data); 

if($firstRow) { $firstRow = false; } 
else { 

    $import="INSERT INTO ..... blah blah blah.... 
Смежные вопросы