【问题标题】:CodeIgniter - Uploading CSV to database issuesCodeIgniter - 将 CSV 上传到数据库问题
【发布时间】:2018-09-03 02:14:40
【问题描述】:

我有一个应用程序,我希望用户能够通过 CSV 上传联系人列表并将其保存到数据库中。我尝试设置brad stinsons CSV codeigniter library,但到目前为止一直遇到问题......当我点击上传时,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 mysql database codeigniter csv


    【解决方案1】:

    如Github page of bradstinson/csv-import中所述:

    CSV 导入 [已弃用]

    CSV Import 是一个 Codeigniter spark,它可以轻松地将 CSV 文件导入关联数组。

    注意:我大约 3 年没有使用此代码,并且将不再提供任何类型的支持。但是,请自行承担使用此代码的风险。

    因此,我强烈建议您不要为您的应用程序使用已弃用的库。

    请注意,您不必寻找专门用于 CodeIgniter 的 CSV 库。任何 PHP 库都可以在 CI 中加载。这最好通过Composer autoloading 完成。

    通过快速搜索,我可以推荐:

    1. 你知道 PHP 有 its very own function (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
    }
    

    【讨论】:

    【解决方案2】:

    我可以通过关注link 中的 git 存储库来完成这项工作

    【讨论】:

      猜你喜欢
      • 2013-06-13
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多