Оно и так у меня SET NAMES cp1251
Проблема по сути в чем. Я загружаю CSV файл. А потом с помощью SQL загоняю его в БД.
Но файлы PHP в кодировке UTF-8.
CSV тоже должен быть в UTF-8. Но пользователи порой путают кодировку, когда создают CSV и делают в CP1251.
Вот хотел бы обезопасится.
А, так как я файлы не считываю с помощью PHP, iconv не получится для String применить. Надо сначала изменить кодировку закачанного файла, а потом обрабатывать его с помощью MySQL.
Нет. шелл к сожалению, недоступен.
iconv() - Convert string to requested character encoding
А мне бы желательно файл. только не считывая его. Так что всякие file_get_contents() не подойдут. Нельзя, чтобы использовалось много памяти, так как файлы достаточно большие. 2-3 мб
Спасибо большое. =)
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY '\t'] [[OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '\\' ] ] [LINES [STARTING BY ''] [TERMINATED BY '\n'] ] [IGNORE number LINES] [(col_name,...)]
Отличная команда. Спасибо. Тогда еще один вопрос. Как вы видите из кода, он обычную дату превращает в unix timestamp, И часть полей он дублирует в другие таблицы с указанием внешнего ключа. Так же, часть данных преобразовывает на основании других таблиц.
Как решить этот вопрос?
Просто Replace будет ли работать?
Не меняются только номера машин VIN. А вот некоторые остальные данные в линии меняться могут.
А что именно исправить? В БД? Ее изменять нельзя, во первых, во вторых, там более 100 тысяч записей. Сложновато.
А он такой и есть. Я даже упомянул это в топике.
Неа. Не работает почему-то? Или у вас получилось? проверьте сами?