Как из csv занести данные в mysql
Сегодня я хочу рассказать как можно данные из CSV-файла загрузить в БД MySQL.
Для сего это нужно. Да разные бывают ситуации, иногда клиенты из экселя дают нам данные и просят их занести в БД, а как это сделать. Не будем же мы подключать массивные скрипт для обработки этого файла и потом еще наступим на грабли с кодировкой… Есть пути куда проще.
Имеется содержимое файла
Первое что делаем, убираем первую строку — аля название поля в БД. Именно тут эта строка не влияет ни на что.
Далее создаем таблицу в БД с соот полями:
Теперь просто используя запрос:
Конструкция LOAD DATA INFILE ‘d:\\user.csv’ говорит о том, помещен файл с данными по указанному пути, путь абсолютный.
Конструкция FIELDS TERMINATED BY ‘;’ ENCLOSED BY ‘»‘ ESCAPED BY ‘\r\n’ говорит о том, что каждое поля в файле будут разделены знаком ;, также что каждое поле будет обернуто в знак «, если внутри поле будет соот знак, то БД позаботится об экранирования (ESCAPED BY) таких знаков (правила построения CSV файлов).
Конструкция LINES STARTING BY » TERMINATED BY ‘\r\n’ говорит о том, что каждая строка начинается с указаного занчения в LINES STARTING BY, а заканчивается строка значением в TERMINATED BY, в данном примере, я ничего не присваиваю началу строки, просто написал чтобы был виден общий синтаксис. Т.к. я юзаю Windows, которому в качестве переноса строки необходимо указать \r\n, поэтому я это значение и поставил в TERMINATED BY, если Вы юзаете *nix подобные системы, то там значение конца строки \n
В итоге выполнения запроса в таблицы БД будет следующее:
Пожалуйста пользуйтесь. Есть вопросы — через комментарии.
UPD:
Вчера я допустил неточность, сказав что из CSV файла необходимо вручную убрать первую строчку. Её можно убрать с помощью запроса. Строка IGNORE num LINES, гду num это кол-во строк которые надо пропустить.
Статья просмотренна 87929 раз, зашло посетителей 28272
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
🔥 Популярное
Руководство по команде grep в Linux
15 примеров команды PING для диагностики сети
Рекурсивно найти слово в файлах и папках Linux
15 примеров CURL в Linux
👌 Похожее
Linux: поиск по использованным ранее командам
Руководство по использованию ffmpeg в Linux
Автоматическая установка обновлений безопасности в Debian и Ubuntu
Экспорт и импорт CSV в MySQL
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Это подробное руководство покажет вам, как экспортировать базу данных MySQL в файл CSV и импортировать файл CSV обратно в базу данных MySQL.
Экспорт MySQL в CSV
Экспорт MySQL в CSV с phpMyAdmin
Инструмент phpMyAdmin предоставляет бесплатный графический интерфейс для управления базами данных MySQL. Вы можете использовать его для экспорта любой из отслеживаемых баз данных в файл CSV.
Экспорт из MySQL в CSV с помощью командной строки
Вы можете выполнить экспорт без излишеств через CLI, выбрав все данные в таблице и указав место, куда их нужно сохранить.
Начните с открытия оболочки MySQL, затем переключитесь на базу данных, которую вы хотите экспортировать.
Введите следующую команду:
Примечание. В этом примере используется местоположение файла Linux. Если вы работаете в Windows, вы можете использовать c:/folder/file.csv для вашего местоположения файла.
Дополнительные параметры для экспорта из MySQL
Чтобы указать отдельные наборы данных для экспорта из таблицы:
myTable реальным именем экспортируемой таблицы.
Примечание: вы можете заметить команду SELECT * FROM в скобках. Мы обернули команду в функцию, которая добавляет метку времени.
Экспорт с заголовками столбцов
Используйте оператор UNION для добавления заголовков столбцов в экспортируемый файл:
Работа с пустыми значениями
Экспорт MySQL в CSV с помощью mysqldump
Вы можете использовать приложение mysqldump для экспорта базы данных MySQL в файл CSV. Введите в командной строке следующее:
Примечание. Ваша учетная запись должна иметь права доступа к каталогу, в котором сохранен файл CSV. Вы можете сохранить его по другому пути, но это должен быть путь, к которому у MySQL есть полный доступ.
Экспорт MySQL в CSV с использованием CSV Engine
Этот оператор изменяет формат базы данных на CSV. Затем вы можете скопировать файл CSV в другую систему.
В определенных конфигурациях, CSV Engine или метод mysqldump также могут сэкономить много времени.
Импорт CSV в MySQL
Импорт файла CSV с помощью командной строки
Шаг 1: Доступ к оболочке MySQL
Откройте окно терминала и войдите в MySQL, используя следующую команду:
Замените username вашим реальным именем пользователя. Система предложит вам ввести пароль для вашего пользователя MySQL. Ввод правильного пароля дает вам доступ к клиенту MySQL.

Шаг 2. Создание таблицы MySQL для импорта в CSV
Столбцы в вашей таблице MySQL должны соответствовать данным из файла CSV, который вы планируете импортировать. Если у вас уже есть таблица, готовая для импорта в CSV, вы можете перейти к шагу 3 руководства.
Выберите базу данных, введя следующую команду:
Замените database_name именем базы данных, в которую вы импортируете данные. Используйте следующую команду для создания новой таблицы:
Замените значение table_name на имя, которое вы хотите использовать для своей таблицы. Переменная column_n представляет имена для каждого столбца в вашем CSV-файле, и вы должны отредактировать их соответствующим образом.
Вы можете добавлять, удалять или изменять типы данных, используемые в этом примере, в соответствии с вашими потребностями. Посетите официальную документацию MySQL по типам данных, чтобы узнать больше.
Шаг 3: Импорт CSV в MySQL Table
Импортируйте данные из файла CSV в базу данных MySQL, используя следующие строки:
Давайте, в свою очередь, рассмотрим действия, стоящие за каждой из этих строк:
Импорт CSV с помощью phpMyAdmin
Если ваш сервер или база данных использует phpMyAdmin, вы можете использовать графический интерфейс для импорта файла CSV.
Заключение
Теперь вы знаете, как экспортировать CSV-файлы из MySQL и импортировать CSV-файлы в MySQL из командной строки и с помощью phpMyAdmin.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Импорт CSV-файла в таблицу MySQL
В этой статье мы расскажем вам, как использовать оператор LOAD DATA INFILE для импорта CSV-файла в таблицу MySQL.
Оператор LOAD DATA INFILE позволяет считывать данные из текстового файла и очень быстро импортировать их в таблицу базы данных.
Перед импортом файла, вам необходимо подготовить следующее:
Предположим, что мы имеем таблицу, которая называется discounts со следующей структурой:
Файл discounts.csv в первой строке содержит заголовки столбцов, в трех других строках — данные:
Следующий оператор импортирует данные из файла c:tmpdiscounts.csv в таблицу discounts :
Теперь мы можем проверить, импортированы ли данные в таблицу discounts :
Преобразование данных при импорте
Предположим, что столбец данных срока действия скидок в файле discount_2.csv имеет формат мм / дд / гггг:
При импорте данных в таблицу discounts мы должны преобразовать их в формат даты MySQL с помощью функции str_to_date() :
Импорт файла клиента для замещения на сервере базы данных MySQL
Эта папка не настраивается и не задается MySQL.
Давайте рассмотрим следующий пример:
Разница заключается только в опции LOCAL оператора. Если вы загружаете большой CSV файл, вы увидите, что с опцией LOCAL загрузка осуществляется немного медленнее, потому что требуется определенное время, чтобы передать файл серверу базы данных.
Импорт CSV файла с помощью MySQL Workbench
MySQL Workbench предоставляет инструмент для импорта данных в таблицу БД. Он позволяет редактировать данные перед внесением изменений.
Ниже приведены этапы импорта данных в таблицу БД:
Откройте таблицу, в которую будут загружаться данные:
Просмотрите данные, нажмите кнопку Apply :
С помощью этих методов можно загружать данные и из других файлов текстовых форматов, таких, например, как текстовый файл с разделителями табуляции.
импорт файла CSV в базу данных MySQL с использованием ошибки php для импорта
Импорт файла CVS (Файл значений Microsoft Office Excel с разделителями-запятыми (.csv)) в phpmyadmim с использованием сценария php.
Когда я импортирую файл CSV, то он не импортируется должным образом в базу данных.
Строка оканчивается на «,» Пожалуйста, подскажите, как мне сделать так, чтобы строка оканчивалась на «авто», я прилагаю образец файла.
После некоторых предложений и исправлений я получаю другую проблему.
Фактический размер файла cvs составляет 106700 строк, а его вставка — 81499 строк.
Я вставлял файлы несколько раз, но всего 81499 вставок.
Пожалуйста, помогите мне решить эту проблему, как я могу вставить все строки в базу данных.
Решение
Существует ряд проблем с предоставленным вами кодом:
1. Не указывайте максимальную ширину линии
Укажите параметр длины (второй параметр) для fgetcsv() только если вы знаете, этого будет достаточно, чтобы прочитать всю строку. В противном случае просто используйте 0 (ноль), чтобы PHP автоматически обнаруживал разрывы строк. (он даже будет разумно использовать новые строки, которые фактически ломают строки, избегая разрывов строк, которые могут произойти в указанных значениях CSV)
2. Избегайте строк перед вставкой в БД
Когда вы вставляете строковые значения в MySQL, вам нужно правильно их экранировать. Если вы этого не сделаете, а строка содержит кавычку, это может нарушить ваш SQL-запрос, что приведет к неудачным вставкам.
Чтобы избежать строк, используйте mysqli_real_escape_string() функция.
3. Используйте mysqli_error () для отладки возможных ошибок в ваших SQL-запросах.
Если вы не проверяете ошибки в запросах SQL, вы работаете вслепую. Если что-то не так, вы можете даже не заметить этого.
Import CSV File into MySQL using PHP
In this tutorial, I will walk you through PHP code to import CSV file into MySQL database by parsing the comma-separated data. The input CSV file is sent via a HTML form. There are various ways to read the CSV data and check my previous linked article for a different option.
I used fgetcsv() function to read the database table column data from the CSV.
If you are looking for PHP code to restore SQL script into database, please check my previous article example of restoring the database by importing the SQL script.
This Screenshot displays the list of imported CSV data from the database after successful CSV file import.
HTML Form to Import CSV File
This HTML code is used to show a form with the CSV file import option. After submitting the file, PHP code parses the CSV data and prepares INSERT query to load the data into the database.
After importing the data into the database the added rows are listed in the browser. When the user uploads the CSV source, the file type is restricted by specifying .csv using the accept attribute.
After importing the complete data from the CSV file it displays the stored data in a grid view. The code to retrieve the stored data and the grid view is as follows.
If so, it will allow further default action to submit the file binaries to the PHP. Otherwise, it stops form submit and displays the error to the browser.
PHP Code to Import CSV Data to MySQL
In PHP code, it reads the uploaded CSV file and parses the data. It opens the input file in reading mode and gets the column data using fgetcsv().
It keeps on continue this process in a loop until it reaches the end of the CSV file. For each iteration. it gets the array of column data of a single record. It prepares INSERT query using these data and executes it to load the data into the database.
Comments to “Import CSV File into MySQL using PHP”
Thank you for the clear and simple tutorial.









