Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 1
Регистрация: 16.03.2015
Сообщений: 21

Импорт из csv в БД

23.02.2017, 17:38. Показов 2919. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, можете подсказать, что я делаю не то? Хочу импортировать данные из csv в базу данных.
За основу брал готовый скрипт, но где-то косячу, т.к импортируются только пустые строки.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
 
setlocale (LC_ALL, 'nl_NL'); // Преобразуем каракули в кириллицу
 
/*
*
*  Настройки
*
*/
 
$options = array(
    'enable'        => true, // Скрипт работает только если значение TRUE
    /* Настройки CSV */
    'filename'      => 'goods.csv', // Имя файла CSV. Находиться должен в одной папке со скриптом
    'delimiter'     => ';', // Какой разделитель используется
    /* Настройки подключения к БД */
    'db_server'     => 'localhost', // Сервер БД
    'db_user'       => 'root', // Имя пользователя
    'db_password'   => '', // Пароль
    'db_base'       => 'goods' // Имя базы данных
 
    );
 
if(!$options['enable']) die('Скрипт отключен, дальнейшая обработка данных невозможна!');
 
/*
*
*  Функции скрипта
*
*/
 
// Основная функция, из импортируемого файла выбираем данные в массив
// !Во время первой итерации значения первой строки будут являться ключами ассоциативного массива!
 
function csv_to_array($filename='') {
    if(!file_exists($filename) || !is_readable($filename)){
        return FALSE;
    }
    global $options;
    $header = NULL;
    $data = array();
    if (($handle = fopen($filename, 'r')) !== FALSE) {
        while (($row = fgetcsv($handle, 1000, $options['delimiter'])) !== FALSE) {
            if(!$header)
                $header = $row;
            else
                $data[] = array_combine($header, $row);
        }
        fclose($handle);
    }
    return $data;
}
 
/*
*
*  / Функции скрипта
*
*  Подключаемся к Базе Данных
*
*/
 
$link = mysql_connect($options['db_server'], $options['db_user'], $options['db_password']);
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
 
// Указываем, что общаемся с БД только в UTF-8
 
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
 
// Выбираем интересующую нас Базу
 
$db_selected = mysql_select_db($options['db_base'], $link);
if (!$db_selected) {
    die ('Не удалось выбрать базу db_data: ' . mysql_error());
}
 
// Отключаем индексацию таблицы, для максимального быстродействия 
 
mysql_query("ALTER TABLE `".$options['db_base']."` DISABLE KEYS");
 
foreach (csv_to_array($options['filename']) as $val) {
 
    print_r ($val);
    $query = "INSERT INTO `Goods_Art` (`Название`, `Категория`) VALUES ('test1','test2')";
    mysqli_query($query);  // здесь я для примера сделал запрос на добавление значений в 2 столбца БД.
 
}
 
 
// Включаем индексацию таблицы 
 
mysql_query("ALTER TABLE `".$options['db_base']."` ENABLE KEYS");
 
// Закрываем соединение с БД
 
mysql_close($link);
 
?>
Данные из файла csv:
article;name;categorie;subcategorie;text ;remains
1234;"Куртка ""Hazes""";Куртки;Мужские куртки;"Куртка ""Hazes"" кожаная со стразами, межсезонная";3
43123;"Куртка ""Revanche""";Куртки;Женские куртки;"Куртка ""Revanche"" кожаная со стразами, межсезонная";4
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2017, 17:38
Ответы с готовыми решениями:

Импорт из CSV в Mysql
Добрый День. Прошу помощи в скрипте не могу понять почему значения из файла 222.csv дублируются, причем в таблице всего 1960 строк, а...

Импорт CSV, обработка и сравнение
Добрый вечер, Есть БД в ней в столбце значения по которым нужно делать сравнения. Импортирую CSV файл, в этом файле так же есть...

Импорт csv в mysql скриптом
Вообщем поставили мне такую задачу, надо связать csv и mysql создал страницу и скрипт загрузки csv файла &lt;html&gt; &lt;head&gt;...

2
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.02.2017, 17:51
Все это делается 1 запросом
MySQL
1
LOAD DATA INFILE '/path/to/goods.csv' INTO TABLE `Goods_Art`;
Еще вероятно надо указать какие разделители и т.д. используются в csv, это уже детали
https://dev.mysql.com/doc/refm... -data.html
0
0 / 0 / 1
Регистрация: 16.03.2015
Сообщений: 21
26.02.2017, 01:15  [ТС]
Получился такой код, но пока появляется ошибка.
Warning: fgetcsv() expects parameter 1 to be resource, string given in C:\OpenServer\domains\goods.ru\index.php on line 7
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<? 
include "connect.php"; 
 
 
$r = 0;
    $pathTofile ="goods.csv";
    while (($row = fgetcsv($pathTofile, 1000, ";")) != FALSE){
    $r++;
 
        if($r == 1) {continue;} // Не импортируем первую строку (например, если там заголовки)
        //записываем данные в БД
        $ins="INSERT INTO `Goods_Art` (`Название`, `Категория`) VALUES ('$row[1]', '$row[2]')";
        mysql_query($ins);
   }
   
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2017, 01:15
Помогаю со студенческими работами здесь

Импорт данных из csv файла в таблицы БД
Здравствуйте. Помогите пожалуйста реализовать следующее. У меня есть база данных в ней находится 3 таблицы (схему бд прикрепил). У меня...

Импорт товаров с изображениями (несколько) из csv
пишу импорт товаров из csv, с данными товара все предельно ясно, не могу понять как быть с изображениями. думаю, предварительно загружать...

Импорт из csv в базу данных посредством php скрипта
Привет, друзья. Есть php скрипт &lt;?php $file_name = 'сайт.ру/uploads/files/content.csv'; // абсолютный путь до файла //$file_name =...

Импорт из csv в мускул. Вопрос по ;
Добрый день. Столкнулся с таким вопросом: Импортирую данные из csv файла в базу данных магазина. csv файл - разделители &quot;;&quot;...

Как лучше всего реализовать импорт CSV в базу данных с предпросмотром?
Я хочу сделать импортирование CSV в базу данных, структура у CSV будет обычная, по типу: фио(с пробелами, по ним буду делать массив из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru