Это вопрос из категории "для начинающих". Но тем не менее я решила его осветить на страницах блога, в угоду желанию объять необъятное и получить с поисковиков дополнительный трафик. :)
Итак, у вас есть CSV-файл, и перед вами встала задача записать содержимое этого файла в базу.
Импорт CSV-файла через PHPMyAdmin
Первый и самый простой способ — воспользоваться готовым инструментом. Например, функция импорта данных из csv-файла в базу есть в
PHPMyAdmin-е.
Выбираем нужную таблицу, на вкладке "Структура" внизу нажимаем на "
Вставить текстовые файлы в таблицу". Указаваем настройки импорта.


Внимание! Если после нажатия "Выполнить" у вас вылезли ошибки типа
ldi_check.php: Missing parameter: db
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
Далее — программные способы. Они подойдут вам, если вы хотите все это дело автоматизировать или если перед непосредственной вставкой вам нужно провести дополнительную обработку данных.
Если вы предполагаете работать с большими файлами, то так просто описанные ниже способы вам тоже могут не подойти. Вам нужно будет провести на подготовительном этапе действия, описанные в пункте об импорте больших файлов через PHPMyAdmin.