Заказать разработку

Импорт данных из CSV в MySQL

Автор:

Дата публикации:

Импорт данных из CSV в MySQL

Казалось бы, тема старая, однако актуальна и по сей день. У многих программистов возникает необходимость импорта данных из csv в mysql и вопрос о том, как это сделать.

Ниже приведен код примера, в котором читается csv-файл, содержимое которого выводится в браузере в виде таблицы и записывается в базу:


$mysqli = new mysqli('localhost', 'root', '', 'test');
$file = fopen('test.csv', 'r');

echo '';
while(!feof($file)){
$mass = fgetcsv($file, 1024, ';');
$j = count($mass);
if($j > 1){
echo '';
echo '’; echo '’; echo '’;
echo '’;
echo '’;
$mysqli->query("INSERT INTO 'table' ('col_1', 'col_2', 'col_3', 'col_4') VALUES ('{$mass[0]}', '{$mass[1]}', '{$mass[2]}', '{$mass[3]}')");
} } echo '
';
echo $mass[0];
echo '
';
echo $mass[1];
echo '
';
echo $mass[2];
echo '
';
echo $mass[3];
echo '
';
fclose($file);
$mysqli->close();

Теперь давайте разбираться что к чему.

Первая строка – это подключение к базе test. В примере использовался OpenServer c php 5.4. Имейте ввиду, что в последних версиях OpenServer для пользователя root также необходимо указать пароль root.

Четвертая и 24-я строки открывают и закрывают таблицу соответственно.

Далее начинаем циклом перебирать содержимое файла построчно: 6 строка – это считывание строки файла до 1024 ее первых символов, разбиение ее по разделителю «;» и запись полученного массива в переменную $mass. Т.к. первая строка csv-файла является шапкой с наименованиями столбцов (в данном примере это так, хотя можно обойтись и без шапки), то ее мы пропускаем с помощью условия. Внутри цикла делаем верстку строки таблицы, записывая в ячейки соответствующие элементы массива $mass. А в 23 строке эти элементы мы добавляем строкой в таблицу table базы test.

Вот и все. В 25 строке мы обязательно закрываем файл, т.к. его обработка завершена, а в 26 строке закрываем уже подключение к БД, т.к. мы в нее добавили все строки из файла.

Таким образом данные можно добавлять не только напрямую, но и предварительно при чтении проделав над ними какие-либо операции. Конечно это зависит от стоящей перед вами задачи.

241027, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (953) 298-86-66

1 декабря 2022


Казалось бы, тема старая, однако актуальна и по сей день. У многих программистов возникает необходимость импорта данных из csv в mysql и вопрос о том, как это сделать.

Ниже приведен код примера, в котором читается csv-файл, содержимое которого выводится в браузере в виде таблицы и записывается в базу:


$mysqli = new mysqli('localhost', 'root', '', 'test');
$file = fopen('test.csv', 'r');

echo '';
while(!feof($file)){
$mass = fgetcsv($file, 1024, ';');
$j = count($mass);
if($j > 1){
echo '';
echo '’; echo '’; echo '’;
echo '’;
echo '’;
$mysqli->query("INSERT INTO 'table' ('col_1', 'col_2', 'col_3', 'col_4') VALUES ('{$mass[0]}', '{$mass[1]}', '{$mass[2]}', '{$mass[3]}')");
} } echo '
';
echo $mass[0];
echo '
';
echo $mass[1];
echo '
';
echo $mass[2];
echo '
';
echo $mass[3];
echo '
';
fclose($file);
$mysqli->close();

Теперь давайте разбираться что к чему.

Первая строка – это подключение к базе test. В примере использовался OpenServer c php 5.4. Имейте ввиду, что в последних версиях OpenServer для пользователя root также необходимо указать пароль root.

Четвертая и 24-я строки открывают и закрывают таблицу соответственно.

Далее начинаем циклом перебирать содержимое файла построчно: 6 строка – это считывание строки файла до 1024 ее первых символов, разбиение ее по разделителю «;» и запись полученного массива в переменную $mass. Т.к. первая строка csv-файла является шапкой с наименованиями столбцов (в данном примере это так, хотя можно обойтись и без шапки), то ее мы пропускаем с помощью условия. Внутри цикла делаем верстку строки таблицы, записывая в ячейки соответствующие элементы массива $mass. А в 23 строке эти элементы мы добавляем строкой в таблицу table базы test.

Вот и все. В 25 строке мы обязательно закрываем файл, т.к. его обработка завершена, а в 26 строке закрываем уже подключение к БД, т.к. мы в нее добавили все строки из файла.

Таким образом данные можно добавлять не только напрямую, но и предварительно при чтении проделав над ними какие-либо операции. Конечно это зависит от стоящей перед вами задачи.

ДРУГИЕ СТАТЬИ

Возврат к списку
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
 
Партнер Аспро Gold partner INTEC

Заказать проект или работы:

Проверяем мессенджеры и почту 3 раза в день. Отвечаем в течении 24-х часов.

Заказать разработку

Копирайт 2014-2024. BUSSOL - разработка и продвижение сайтов.
BUSSOL, ОГРНИП: 321325600054519,
Смотреть все реквизиты
Сайт работает на 1С-Битрикс.Управление сайтом

bussolweb.ru использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. Если Вы не хотите, чтобы Ваши пользовательские данные обрабатывались, пожалуйста, ограничьте их использование в своём браузере
Политика конфиденциальности
Публичная оферта