PHP, PDO, как импортировать файл CSV в MYSQL?

186
06 ноября 2018, 02:40

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

<section>
    <header style="text-align: center; padding: 0 0 30px 0; font-size: 1.5em">
        Выберите файл для импорта
    </header>
    <form method="post" action="" enctype="multipart/form-data" style="text-align: center">
        <label>
            <p style="text-align: justify; padding: 0 0 0 470px">
                Выбранный файл
                <input type="file" name="file" />
            </p>
        </label>
        <label>
            <p style="text-align: justify; padding: 0 0 0 470px">
                Загрузить
                <input type="submit" name="submit" />
            </p>
        </label>
    </form>
</section>
<?php
    // setting session
    $session_start = session_start();
    $session_id = session_id();
    //setting connect DB
    $dsn = 'mysql:host=localhost;dbname=ListGood';
    $username = 'root';
    $password = 'nemate666';
    // connect DB
    $dbh = new PDO($dsn, $username, $password);
    // count orders
    $count_orders = $dbh->query('SELECT COUNT(*) FROM Product')->fetchColumn();

    // work with csv
    if($_POST['submit'] && $_FILES['file']['size'] > 0) {
        $filename = $_FILES['file']['tmp_name'];
        $file = fopen($filename, 'r');
        try {
            $statement_insert = $dbh->prepare(
                    'INSERT INTO Product(id, name, name_trans, price, small_text, big_text, user_id) 
                              VALUES(?, ?, ?, ?, ?, ?, ?)');
            if ($count_orders == 0) {
                while (($getData = fgetcsv($file, 1000, ",")) !== FALSE) {
                    $statement_insert->execute([$getData[0], $getData[1], $getData[2], $getData[3],
                                                $getData[4], $getData[5], $session_id]
                    );
                }
                fclose($file);
            } else {
                echo 'dfgfg';
            }
        } catch(PDOException $e) {
            echo $e->getMessage();
        }
    }

И кусочек CSV файла

1,Samsung,"Samsung galaxy",10.1,"Сайт рыбатекст","Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько 
                абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору 
                отточить навык публичных выступлений в домашних условиях"
READ ALSO
Как скрыть / показать блок лендинга из админки WordPress

Как скрыть / показать блок лендинга из админки WordPress

Задача такая есть лендинг на WP нужно показывать скрывать нужные блокиТоесть в админке сделать раздел с чекбоксами

192
Установка PHP Mess Detector и PHP CodeSniffer на PHPSTORM

Установка PHP Mess Detector и PHP CodeSniffer на PHPSTORM

Пытался подключить PHP Mess Detector и PHP CodeSniffer в PHPStorm ничего не получилось, подскажите, как правильно это подключить и настроить?

185
Routes с GET-запросом в codeigniter

Routes с GET-запросом в codeigniter

У меня возник вопрос такого рода: Имеется url вида

165
Пауза в setInterval во время выполнения

Пауза в setInterval во время выполнения

Возникла такая проблема, функция каждую секунду делает проверку, но если возникает исключение в PHP-коде, мне надо приостановить setInterval на 60 секунд,...

143