我有一个 .xls 文件,其中包含大量行,这些行必须存储到数据库中。现在,我正在读取循环中的每一行并将其插入表中。有什么办法可以一次将所有行转储到表中吗? (没有循环吗?)
for ($row = 2; $row <= $highestRow; $row++)
{
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,NULL,TRUE,FALSE);
$entityName =$headings[0];
$entityValue=$rowData[0];
$rowData[0] = array_combine($headings[0], $rowData[0]);
$num = count($rowData[0]);
$excelDOB=$rowData[0]['date of birth'];
$student = array(
'name' => $name,
);
$this->common_model->insert_student_data($student);
}
答案 0 :(得分:0)
您正在使用PHPExcel的 rangeToarray()来获取每一行。 该范围不仅可以用于单行,而且可以用于多行。
$rowData = $sheet->rangeToArray('A1' . ':' . $highestColumn . $highestRow,NULL,TRUE,FALSE);
意思相同
A1:J1
A2:J2
.
.
.
A1:J50
=>
A1:J50
答案 1 :(得分:0)
不是在循环中执行查询,而是使用循环构建Insert语句,并在循环完成后执行。一次执行查询。 这样,而不是执行100/200 / n个查询,所有插入将在一个查询中发生,因此性能会更好。