Это вопрос из категории «для начинающих». Но тем не менее я решила его осветить на страницах блога, в угоду желанию объять необъятное и получить с поисковиков дополнительный трафик. 🙂
Итак, у вас есть CSV-файл, и перед вами встала задача записать содержимое этого файла в базу.
Импорт CSV-файла через PHPMyAdmin
Первый и самый простой способ — воспользоваться готовым инструментом. Например, функция импорта данных из csv-файла в базу есть в PHPMyAdmin-е.
Выбираем нужную таблицу, на вкладке «Структура» внизу нажимаем на «Вставить текстовые файлы в таблицу«. Указаваем настройки импорта.
Внимание! Если после нажатия «Выполнить» у вас вылезли ошибки типа
ldi_check.php: Missing parameter: table
это может объясняться разными причинами.
1. Возможно, файл, предназначенный для импорта, слишком большой. В старых версиях PHPMyAdmin (младше 2.7.0) был баг с импортом больших файлов. Так что, возможно, выходом из ситуации будет обновление PHPMyAdmin-а.
(Ссылка на пункт 1.16 FAQ) Начиная с версии 2.7.0 функция импорта была переписана и проблем с импортом больших файлов не должно возникать.
Следующее, что можно проверить (или спросить у провайдера), — это значения параметров upload_max_filesize, memory_limit и post_max_size в конфигурационном файле php.ini. Эти три настройки ограничивают максимальный размер данных, которые могут быть переданы и обработаны PHP.
Там же, в документации, приводится описание нескольких «обходных путей», которые подойдут, если вы импортируете не scv-файл, а заливаете дамп базы, а ваш провайдер не хочет менять настройки:
а) Проверьте настройку $cfg[‘UploadDir’]. Она позволяет настроить загрузку файла на сервер через scp, ftp или другим методом. PhpMyAdmin может работать с файлами, расположенными во временном каталоге. Более подробную информацию читайте в разделе Настройки документации.
б) Используйте сторонние утилиты (например, BigDump) для того, чтобы разбить файл перед загрузкой.
в) Если у вас есть прямой shell доступ, используйте MySQL для импорта файлов напрямую. Вы можете это сделать с помощью команды «source»:
source filename.sql
2. Если файл небольшой, но эти ошибки все же появляются, то вам может помочь вот эта тема на форуме.
Парсинг CSV-файла с помощью PHP
Далее — программные способы. Они подойдут вам, если вы хотите все это дело автоматизировать или если перед непосредственной вставкой вам нужно провести дополнительную обработку данных.
Автор: Masha