protected function generateBatchInsertReplace($statement, $index, $columns, $rows, &$params)
{
if (($indexSchema = $this->db->getIndexSchema($index)) !== null) {
$indexSchemas = [$indexSchema];
} else {
$indexSchemas = [];
}
$notNullColumns = [];
$values = [];
foreach ($rows as $row) {
$vs = [];
foreach ($row as $i => $value) {
if ($value === null) {
continue;
} elseif (!in_array($columns[$i], $notNullColumns)) {
$notNullColumns[] = $columns[$i];
}
$vs[] = $this->composeColumnValue($indexSchemas, $columns[$i], $value, $params);
}
$values[] = '(' . implode(', ', $vs) . ')';
}
foreach ($notNullColumns as $i => $name) {
$notNullColumns[$i] = $this->db->quoteColumnName($name);
}
return $statement . ' INTO ' . $this->db->quoteIndexName($index) . ' (' . implode(', ', $notNullColumns) . ') VALUES ' . implode(', ', $values);
}