【问题标题】:Codeigniter importing data using excel fileCodeigniter使用excel文件导入数据
【发布时间】:2016-09-16 07:02:35
【问题描述】:

我正在尝试使用 codeigniter 应用程序通过 excel 表将数据导入数据库。我正在使用 phpexcel。但是代码是正确的,但我收到一条错误消息:

错误号:1054 “字段列表”中的未知列“小丑” 插入学生帐户(小丑)值('') 文件名:C:/xampp/htdocs/Nalanda_Library/system/database/DB_driver.php 行号:691

但是我的代码如下:对于控制器

public function studentaccountimport(){
        $this->load->model('Department');

        $file = $_FILES['upload']['tmp_name'];
        //load the excel library
        $this->load->library('excel');
        //read file from path
        $objPHPExcel = PHPExcel_IOFactory::load($file);
        //get only the Cell Collection
        $cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();
        //extract to a PHP readable array format
        foreach ($cell_collection as $cell) {
            $column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();
            $row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();
            $data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();
            //header will/should be in row 1 only.
            if ($row == 1) {
                $header[$row][$column] = $data_value;
            } else {
                $arr_data[$row][$column] = $data_value;
                $this->Department->modeluploadation($data_value);

            }
        }
    }

模型:

public function modeluploadation($data){
    $this->db->insert('studentsaccount',$data);
    }

我是codeigniter的新手,请帮忙

【问题讨论】:

  • 还有什么不清楚的地方?
  • @u_mulder 当我尝试将数据导入数据库时​​,它给了我一个错误,请先阅读问题
  • 我已阅读问题和错误。这很明显,所以我再问一次 - 你有什么不清楚的地方?
  • 你在字段列表中有那个字段小丑
  • 1.在excel中将字段名称放在列的顶部。 2.插入查询需要指定列名...

标签: php excel codeigniter codeigniter-3


【解决方案1】:

您需要在插入查询中指定列名..

试试

if ($row == 1) {
                $header[$row][$column] = $data_value;
            } else {
                $arr_data[$row][$column] = $data_value;


            }

$data['header'] = $header;
$data['values'] = $arr_data;

 $this->Department->modeluploadation($data);

【讨论】:

    【解决方案2】:

    好的,你的问题的原因是你需要传递一个 key=>value 对的数组作为 insert() 的参数。

    我不确定为什么 Safins 的答案被标记为因为他是对的。所以当你应该将模型上传设置为:

    public function modeluploadation($data){
            $this->db->insert('studentsaccount',array('field_name'=>$data_value));
    }
    

    【讨论】:

    • 现在收到一个错误,指出您必须使用 set 方法进行输入!
    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 2018-02-22
    • 2017-07-05
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多