CodeIgniter - проблемы с загрузкой CSV в базу данных

У меня есть приложение, в котором я хочу, чтобы пользователь мог загружать список контактов через CSV и сохранять их в базе данных. Я пытался настроить Библиотека codeigniter CSV Брэда Стинсона, но до сих пор у меня были проблемы ... Когда я нажимаю на загрузку, CSV просто исчезает и никуда не денется, без каких-либо ошибок ..

Если бы кто-нибудь мог сообщить мне, на правильном ли я пути или просто не в себе, я был бы очень признателен.

Вот мой контроллер Csv_import.php

public function load_data() {

    $result = $this->csv_import_model->select();
    $output = 'contacttable';
    $count = 0;
    if ($result->num_rows() > 0)

    {
        foreach ($result->result() as $row)
        {
            $count = $count + 1;
            $output .= '
            <tr>
            <td>'.$count.'</td>
            <td>'.$row->fullname.'</td>
            <td>'.$row->email'.</td>
            <td>'.$row->country'.</td>
            <td>'.$row->gender'.</td>
            </tr>';

        }

    }
    else {
        $output .='<p>Data not available</p>';

    }
    $output .= '</table></div>';
    echo $output;


}

public function import()
{
    $file_data = $this->csvimport->get_array($_FILES["csv_file"] 
    ["tmp_name"]);

    foreach($file_data as $row)
    {
        $data[] = array (

        'fullname' => $row["fullname"],
        'email' => $row["email"],
        'country' =>$row["country"],
        'gender' =>$row["gender"]
        );

    }
    $this->csv_import_model->insert($data);
}

моя модель Csv_Import_model.php

class Csv_import_model extends CI_model
{
    function select()
    {
        $this->db->order_by('idcontacts', 'DESC');
        $query = $this->db->get('contacts');
        return $query; 
    }


    function insert($data)
    {
        $this->db->insert_batch('contacts', $data);
    }
}

Мой вид на панели управления

<form method = "post" id = "import_csv" enctype = "multipart/form-data">
    <div class = "form-group">
        <label>Select CSV File</label>
        <input type = "file" name = "csv_file" id = "csv_file" required accept = ".csv" />
    </div>

    <button type = "submit" name = "import_csv" class = "btn btn-info" 
    id = "import_csv_btn">Import CSV</button>
</form>
<br>
<div id = "imported_csv_data"></div>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
426
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Как указано в Github-страница bradstinson / csv-import:

CSV Import [DEPRECATED]

CSV Import is a Codeigniter spark which makes it easy to import a CSV file into an associative array.

NOTE: I've not used this code in about 3 years, and will no longer offer any type of support. However, feel free to use this code at your own risk.

Поэтому я настоятельно не рекомендую использовать устаревшую библиотеку для вашего приложения.

Обратите внимание, что вам не нужно искать библиотеку CSV, посвященную CodeIgniter. Внутри CI можно загрузить любую библиотеку PHP. Это предпочтительно делается через Автозагрузка композитора.

При быстром поиске я могу порекомендовать:

  1. Знаете ли вы, что в PHP есть собственная функция (fgetcsv) для анализа файла CSV? У него есть недостатки (не соблюдаются строки в кавычках или многострочный CSV), но он может работать в вашем случае.

  2. parsecsv / parsecsv-for-php, который реализует RFC 4180 (стандарт CSV) и выглядит активно поддерживаемым. Его можно загрузить с помощью Composer.

Вот пример использования fgetcsv:

if (($handle = fopen("myfile.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        // Process with $data
    }
    fclose($handle);
}

Вот пример использования parsecsv:

$csv = new ParseCsv\Csv();
$csv->delimiter = ",";
$csv->parse('my-file.csv');
foreach($csv->data as $row) {
    // Process using $row
}

Спасибо, я посмотрю на эти

Jim123 25.03.2018 15:02

Как это выглядит? :)

Indigo 26.03.2018 21:02

я смог заставить его работать, используя этот github.com/jadirullah/Codeigniter-Impor-Csv-to-Mysql

Jim123 26.03.2018 21:04

... Который внутренне использует fgetcsv. Может быть, добавьте эту ссылку в качестве ответа, чтобы она могла помочь другим людям :)

Indigo 26.03.2018 22:13
Ответ принят как подходящий

Я смог заставить это работать, следуя репозиторию git в этом ссылка на сайт

Другие вопросы по теме