Задать вопрос

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

В форме добавляю файл и нужно вставить данные в базу данных, вроде всё делаю правильно, но ни ошибку не получаю, ни БД не обновляется. Вот скрипт
<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,"Сайт рыбатекст","Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько 
                абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору 
                отточить навык публичных выступлений в домашних условиях"
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
VladimirAndreev
@VladimirAndreev
php web dev
Почитай, как установить pdo error modw
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы