Как обновить данные, импортируемые из файла CSV

Я создал php-функцию для импорта CSV / Excel-файла в базу данных MYSQL через CodeIgniter.

  1. Он будет проверять наличие дубликатов строк в базе данных, но пока он обновит данные, иначе он будет вставлять данные, которые возникают у меня, когда я обновляю CSV-файл и загружаю его снова, я получаю ошибку

Уровень важности: предупреждение

Сообщение: pathinfo () ожидает, что параметр 1 будет строкой, заданный массив

Имя файла: core / Loader.php

Номер строки: 759

это мое кодирование для импорта CSV

class Upload_services extends CI_Model { function __construct() { parent::__construct(); } function upload_sampledata_csv() { if(isset($_POST['submit'])) { $fp = fopen($_FILES['userfile']['tmp_name'],'r') or die("can't open file"); while(($line = fgetcsv($fp, 10000, ",")) !== FALSE) { //check whether there are duplicate rows of data in database $prevQuery = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'output' => $line[7], 'process_description' => $line[8], 'material_part' => $line[9] ); $where = array( 'articleno' => $line[0], 'process_description' => $line[8], 'material_part' => $line[9] ); $q = $this->db->select("*") ->where($where) ->from('sindi_productprocess_temp'); $prevResult = $this->db->get(); if($prevResult->num_rows > 0){ //update process data $set =array('output'=>$line[7]); $where = array( 'articleno' => $line[0], 'process_description' => $line[8], 'material_part' => $line[9] ); $query = $this->db->get_where('sindi_productprocess_temp', array('output ='=>$line[7]))->result(); }else{ $data = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'output' => $line[7], 'process_description' => $line[8], 'material_part' => $line[9] ); $data['crane_features']=$this->db->insert('sindi_productprocess_temp', $data); } } fclose($fp) or die("can't close file"); } } } 

это мой файл CSV, который еще не обновляет CSV-файл

Я хочу изменить выход для AB02-OKE-01-09-Y0-001 от 500 до 200 для material_part = Top PVC Sheet-Left и 300 для Top PVC Sheet-Right

когда я изменяю код, как показано ниже, он работает, но вместо обновления существующих данных он вставляет дубликаты данных

  if($prevResult->num_rows > 0){ //update process data $data = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'output' => $line[7], 'process_description' => $line[8], 'material_part' => $line[9] ); $set =array('output'=>$line[7]); $this->db->where = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'process_description' => $line[8], 'material_part' => $line[9] ); $this->db->update('sindi_productprocess_temp',$set);