php - 导入excel到mysql报错

标签 php mysql excel codeigniter

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

Controller

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

关于php - 导入excel到mysql报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46241691/

相关文章:

mysql - 为什么 MySQL 将 Boolean 解释为 TINYINT(1) 而不是 BIT(1)?

php - 电子邮件地址的更新表问题

excel - 尝试选择范围时出现语法错误

python - 无法在 Excel 文件中正确写入提取的项目?

php - 如何在数据库中每行创建一个有效的删除/更新按钮

php - 使用 PHP 将 ICO 转换为 PNG 问题

php - 如何在配置文件中使用路由助手

mysql - 从日期字段中过滤每个月的sql数据

php - Symfony2 自引用多对多关系

c# - ClosedXml 范围错误