import excel to mysql Error

J'essaie d'importer des données d'un file Excel vers Mysql, mais il n'insère pas datatables

Manette

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"; } } } 

L'erreur est

 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 

Je pense que la syntaxe est fausse, je suis novice au codiciteur, et je suis du Chili, je suis désolé si on ne comprend pas très bien, mais la plupart de ce que j'ai trouvé, a été en anglais, pour eux je request à l'anglais communauté.

Votre syntaxe est incorrecte. Essayez ce code et assurez-vous que dans le tableau, le nom de la colonne devrait être identique. Pour l'ex. 'hrs_ini', alors dans le tableau db, le nom de la colonne doit être identique à 'hrs_ini', sinon datatables ne seront pas insérées si l'une d'elles est différente ou introuvable. Permettez-moi de savoir si cela fonctionne ou non.

 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); } ); 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); } 

Vous devez envelopper vos params insérés dans un tableau, ou du less c'est une erreur:

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

Je pense que techniquement, vous voudriez append vos noms de colonne aussi, alors vous devrez peut-être faire quelque chose comme ça:

 $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] ) ); tableau ( $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] ) ); 

Mais selon vos données, cela pourrait être tout ce dont vous avez besoin:

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