CodeIgniter - 将 CSV 上传到数据库问题
Posted
技术标签:
【中文标题】CodeIgniter - 将 CSV 上传到数据库问题【英文标题】:CodeIgniter - Uploading CSV to database issues 【发布时间】: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>
【问题讨论】:
【参考方案1】:如Github page of bradstinson/csv-import中所述:
CSV 导入 [已弃用]
CSV Import 是一个 Codeigniter spark,它可以轻松地将 CSV 文件导入关联数组。
注意:我大约 3 年没有使用此代码,并且将不再提供任何类型的支持。但是,请自行承担使用此代码的风险。
因此,我强烈建议您不要为您的应用程序使用已弃用的库。
请注意,您不必寻找专门用于 CodeIgniter 的 CSV 库。任何 PHP 库都可以在 CI 中加载。这最好通过Composer autoloading 完成。
通过快速搜索,我可以推荐:
你知道 PHP 有 its very own function (fgetcsv) 来解析 CSV 文件吗?它有其缺点(不尊重带引号的字符串或多行 CSV),但它可能适用于您的情况。
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
【讨论】:
谢谢,我会调查这些 它看起来怎么样? :) 我可以使用这个github.com/jadirullah/Codeigniter-Impor-Csv-to-mysql ...内部使用fgetcsv
。也许将此链接添加为答案,以便对其他人有所帮助:)【参考方案2】:
我可以通过关注link 中的 git 存储库来完成这项工作
【讨论】:
以上是关于CodeIgniter - 将 CSV 上传到数据库问题的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 将部分 CSV 数据插入到 MYSQL 中,只有 id 和 date
如何使用 PHP CodeIgniter 将 CSV 数据导入 MYSQL 数据库?