If we have to insert large data, existed method saveAll() will be slow rather than core query.
public function submitData($data = array()) { if (!empty($data)) { $queryString = ''; $queryData = array(); $i = 0; foreach ($data as $item) { if (empty($queryString)) { $queryString = "INSERT INTO `tablename` ("; $columns = array(); $values = array(); foreach($item as $key=>$value) { $columns[] = "`$key`"; $values[] = !is_numeric($value) ? "'" . Utils::mres($value) . "'" : $value; } $queryString .= implode(',', $columns) . ') VALUES '; $queryData[] = '(' . implode(',', $values) . ')'; } else { $values = array(); foreach($item as $key=>$value) { $values[] = !is_numeric($value) ? "'" . $value . "'" : $value; } $queryData[] = '(' . implode(',', $values) . ')'; } $i++; if ($i == 500) { $queryString .= implode(',', $queryData); $this->query($queryString); $queryString = ''; $queryData = array(); $i = 0; } } $queryString .= implode(',', $queryData); if (!empty($queryString)) { $this->query($queryString); } } }