导入excel到mysql错误

我正在尝试从Excel文件导入数据到Mysql,但它不插入数据

调节器

public function guardar_horario(){ if (!empty($_FILES['file']['name'])) { $pathinfo = pathinfo($_FILES["file"]["name"]); if (($pathinfo['extension'] == 'xlsx' || $pathinfo['extension'] == 'xls') && $_FILES['file']['size'] > 0 ) { // Temporary file name $inputFileName = $_FILES['file']['tmp_name']; // Read excel file by using ReadFactory object. $reader = ReaderFactory::create(Type::XLSX); // Open file $reader->open($inputFileName); $count = 1; // Number of sheet in excel file foreach ($reader->getSheetIterator() as $sheet) { // Number of Rows in Excel sheet foreach ($sheet->getRowIterator() as $row) { // It reads data after header. In the my excel sheet, // header is in the first row. if ($count > 1) { // Data of excel sheet $data['hrs_ini'] = $row[0]; $data['hrs_ter'] = $row[1]; $data['lunes'] = $row[2]; $data['martes'] = $row[3]; $data['miercoles'] = $row[4]; $data['jueves'] = $row[5]; $data['viernes'] = $row[6]; $data['sabado'] = $row[7]; $this->db->insert('horario',$row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7]); //$sql="INSERT INTO estudiantes (nombre_es, apellido_pa, apellido_ma) VALUES('$row[0]','$row[1]','$row[2]')"; //$resultado=mysqli_query($conn,$sql); //print_r($data); } $count++; } } // Close excel file $reader->close(); } else { echo "Please Select Valid Excel File"; } } else { echo "Please Select Excel File"; } } } 

错误是

 A Database Error Occurred You must use the "set" method to update an entry. Filename: C:/xampp/htdocs/SAE/system/database/DB_query_builder.php Line Number: 1686 

我认为语法是错误的,我是新的codeigniter,我来自智利,我很抱歉,如果不是很好理解,但我发现,大部分已经英语,对他们我要求英语口语社区。

你的语法错了。 请尝试此代码,并确保在数组中的列名称应该是相同的。 例如。 'hrs_ini',所以在db表中,列名必须与'hrs_ini'相同,否则数据将不会插入,如果其中任何一个不同或找不到。 让我知道它是否工作。

 if($count > 1) { //Make array here $data = array( 'hrs_ini' => $row[0], 'hrs_ter' => $row[1], 'lunes' => $row[2], 'martes' => $row[3], 'miercoles' => $row[4], 'jueves' => $row[5], 'viernes' => $row[6], 'sabado' => $row[7] ); //Insert the data here $this->db->insert('horario',$data); } 

你需要把你插入的params包装在一个数组中,至less这是一个错误:

 $this->db->insert( 'horario', array($row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7]) ); 

我想技术上你也想添加你的列名,所以你可能需要做这样的事情:

 $this->db->insert( 'horario', array( 'hrs_ini' => $row[0], 'hrs_ter' => $row[1], 'lunes' => $row[2], 'martes' => $row[3], 'miercoles' => $row[4], 'jueves' => $row[5], 'viernes' => $row[6], 'sabado' => $row[7] ) ); 

但根据您的数据,这可能是所有你需要的:

 $this->db->insert( 'horario', $data );